一、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