首页 > 其他分享 >ui自动化测试框架po框架

ui自动化测试框架po框架

时间:2024-10-11 15:24:48浏览次数:9  
标签:框架 data self ui ini print path os po

一、po基本介绍

(1)PO框架是Page Object的缩写

(2)po框架:业务流程与页面元素操作分离的模式,可以简单理解为每个页面下面都有一个配置class, 配置class就用来维护页面元素或操作方法
(3)提高测试用例的可维护性、可读取性
(4)对比:传统的设计测试用例存在的弊端:
1.易读性差
2.复用性差
3.可维护性差
4.扩展性差

二、po框架自动化结构

1、先创建一个cms项目
在创建一个cofing包==存放所有配置文件信息(比如项目路径和数据,用例的路径)
       可以封装路径      
在创建一个Data包==放数据(测试数据)
        在Data包中创建一个TestData目录(放测试数据)
        测试环境的一些url地址和账号密码可以放在TestDta中       
在创建一个repot包==存放测试报告
        在repot包中创建一个Testrepot目录(存放报告)      
在创建一个public公共公开的包(存放一些功能用例)
        在public包中创建pages存放元素层流程层,element元存放(封装所有页面的公共方法,基类)
        在public包中创建utils包(处理公共类公共函数都存放在此)
               可以在utils中来读取pages中封装的登录的流程(封装读取ini文件或者EXCEL表格的工具类和工具函数       
在创建一个TestCase用例包用来存放用例
        编写测试用例
在创建一个run_all用来运行
        通过运行测试用例中封装好的用例在运行然后在repot中生成测试报告

三、实战

1、新建一个项目:命名po_ui

 2、新建包6个包

 3、按照包开始编辑内容

(1)conf包

新建一个模板 ini文件:

命名:cms_conf.ini 

并编辑内容

 

在conf中新建一个cms_path.py ,这个文件主要将项目路径定义;

导入os 模块:代码如下

import  os
bash_path=os.path.dirname(os.path.dirname(__file__))
print(bash_path) #项目路径
conf_path=os.path.join(bash_path,"conf")
print(conf_path)
data_path=os.path.join(bash_path,"data")
print(data_path)
report_path=os.path.join(bash_path,"report")
print(report_path)
testcase_path=os.path.join(bash_path,"testcase")
print(testcase_path)
public_path=os.path.join(bash_path,"public")
print(public_path)
pages_path=os.path.join(bash_path,"public","pages")
print(pages_path)
utils_path=os.path.join(bash_path,"public","utils")
print(utils_path)

 (2)data包中主要存放数据:

主要excel表格

 

 以上提供ini文件或excel提供数据,我们要去读取

(3)在utils包下:新建读取ini文件的方法

 

在dos窗口输入:  pip install configparser
因为读取ini文件要用到configparser
from configparser import ConfigParser   #导入configparser模块中ConfigParser类
from conf.cms_path import *          #从config模块导入所有的路径
import os
class Read_Ini(ConfigParser):   #定义了一个类,继承了ConfigParser类里面的方法和属性
    def __init__(self,filename):
        super(Read_Ini,self).__init__()  #继承了父类的构造方法
        self.filename=filename
        self.read(self.filename)      #读取ini文件
    def read_data_ini(self,section=None, option=None):
        '''
        封装一个获取section对应的option里面的value值
        :return:
        '''
        value = self.get(section,option)   #通对应的option拿到value值
        return value
file = os.path.join(conf_path,"cms_conf.ini")
read= Read_Ini(file)
url = read.read_data_ini("test_data","url")
print(url)

 结果:http://cms.duoceshi.cn/manage/login.do

 在utils中新建一个read_excel  的模块

 用到xlrd  :pip  install  xlrd==1.2.0

 

import xlrd
from conf.cms_path import *
import os
class Read_Excel(object):
    def __init__(self,filename,sheet_Name):
        #先打开一个excel表格
        self.workbook=xlrd.open_workbook(filename)
        #进入到sheet页面
        self.sheetName=self.workbook.sheet_by_name(sheet_Name)

    def get_excel_data(self,row,col):
        '''
        封装了一个通过行和列来获取excel表格里面数据的工具方法
        '''
        value = self.sheetName.cell(row,col).value
        return value
file = os.path.join(data_path,"data.xlsx")   #把data的路径和data.xls文件名进行拼接
excel = Read_Excel(file,"sj")
url = excel.get_excel_data(1,0)  #根据索引去取第二行第一列的url地址
print(url)

  

标签:框架,data,self,ui,ini,print,path,os,po
From: https://www.cnblogs.com/xiaolehong/p/18458470

相关文章

  • HikariPool
    springboot默认连接池 https://www.jianshu.com/p/eb85103f29d6 HikariPool数据库连接池配置详解justonemoretry关注IP属地:北京0.2362022.05.1215:41:47字数1,847阅读21,9771.简介Hikari连接池目前公认是性能最高的数据库连接池,同时也是SpringBoot2.0以后......
  • 大模型存储选型 & JuiceFS 在关键环节性能详解
    从去年开始,LLM大语言模型领域发展迅速、如LLaMA、ChatGLM、Baichuan、Qwen和yi-model等基础模型(FoundationModels)的数量显著增加。众多企业也开始基于这些基础模型做post-training的相关工作,以开发特定垂直领域的模型实现应用落地。AI模型的参数规模呈指数级增长,出现了越......
  • 有一种能力认证,叫做工信人才PostgreSQL认证
    有想往数据库行业发展的人要找工作跳槽;有使用PostgreSQL数据库的员工想要升职加薪;有使用PostgreSQL数据库的企业想要招标投标信创项目;来看看工信人才PostgreSQL认证。工信人才PostgreSQL认证是由工业和信息化部人才交流中心主办、北京神脑资讯技术有限公司承办的一种能力......
  • Linux下权限设置之suid、sgid、sticky
    linux文件普通权限rwxLinux中文件的普通权限一般为:rwx,对应与数字表示:421,除此之外,文件还有三种特殊权限,就这是我们本节要讲的三种特殊文件权限。linux文件特殊权限suid、sgid、stickylinux文件的三种特殊权限分别是:suid权限、sgid权限、sticky权限;其中suid权限作用于文件属主,sgid......
  • [ComfyUI]太赞了!阿里妈妈发布升级版 Flux 图像修复模型,更强细节生成,更高融合度以及更
    前言小伙伴们还记得我们之前介绍的阿里妈妈发布的Flux的ControlNet图像修复模型不,之前发布的是Alpha早期测试版本,说实话和Flux原生的重绘其实差距不大,有些方面甚至还是原生的效果更好。但是现在,Alpha的升级版本Beta版本来了,不仅突破了原先768分辨率的限制,可......
  • GUI 800 打印预览dump
    3376098-使用FEATURE_NOT_SUPPORTED的RAISE_EXCEPTION转储在从假脱机到SP01的打印预览时发生-SAPforMe URE_NOT_SUPPORTED的RAISE_EXCEPTION转储在从假脱机到SP01的打印预览时发生SAPKnowledgeBaseArticle,version:9,审批日期:1......
  • 基于uni-app与图鸟UI的电影购票小程序开发实践
    摘要随着移动互联网的快速发展,电影购票服务逐渐从线下转移到线上,为用户提供更加便捷、高效的观影体验。本文介绍了一款基于uni-app框架与图鸟UI设计的电影购票小程序的开发实践。该小程序集成了购票、预售、热门预告片观看及票圈论坛交流等多元化功能,旨在打造全方位的观影服务......
  • 2019-3-8-为何使用-DirectComposition
    titleauthordateCreateTimecategories为何使用DirectCompositionlindexi2019-3-88:56:9+08002018-04-1809:44:40+0800windowsDirectComposition本文主要翻译WhyuseDirectComposition,介绍DirectComposition的功能和优点。创建更加迷人的界面虽然界面创建好看是设计师的能......
  • 机器学习四大框架详解及实战应用:PyTorch、TensorFlow、Keras、Scikit-learn
    目录框架概述PyTorch:灵活性与研究首选TensorFlow:谷歌加持的强大生态系统Keras:简洁明了的高层APIScikit-learn:传统机器学习的必备工具实战案例图像分类实战自然语言处理实战回归问题实战各框架的对比总结选择合适的框架1.框架概述机器学习框架在开发过程中起着至......
  • Unity游戏通用框架——事件的订阅和发布(观察者模式)
    在游戏开发的基本思想中,逻辑与表现的分离极为重要,相互之间并不关心具体实现,只注册对应的事件,有事件发生时才调用相应的函数事件管理器usingSystem.Collections;usingSystem.Collections.Generic;publicclassevent_manager:Singletom<event_manager>{public......