po框架
一、ui自动化po框架介绍
(1)PO是Page Object的缩写(pom模型)
(2)业务流程与页面元素操作分离的模式,可以简单理解为每个页面下面都有一个配置class, 配置class就用来维护页面元素或操作方法
(3)提高测试用例的可维护性、可读取性
对比:传统的设计测试用例存在的弊端:
1.易读性差
2.复用性差
3.可维护性差
4.扩展性差
二、ui自动化框架6个包
‘’'1、先创建一个cms项目
(1)创建第一个conf包存放所有配置文件信息(比如项目路径和数据,用例的路径)
可以封装路径
‘‘ini是一种配置文件
在ui自动化测试中配置文件的种类
ini、Excel、.py、yaml、txt’’’
在创建第二个Data包放数据(测试数据)
(2) 在data包中创建一个TestData目录(放测试数据)
测试环境的一些url地址和账号密码可以放在TestDta中
(3)在创建第三个report包==存放测试报告
在report包中创建一个Testrepot目录(存放报告)
(4)在创建第四个public公共公开的包(存放一些功能用例)
在public包中创建pages存放元素层流程层(封装所有页面的公共方法,基类)
在public包中创建utils包(处理公共类公共函数都存放在此)
可以在utils中来读取pages中封装的登录的流程(封装读取ini文件或者EXCEL表格的工具类和工具函数
(5)在创建第五个testcase用例包用来存放用例
编写测试用例
(6)在创建第六个run包用来运行
通过运行测试用例中封装好的用例在运行然后在repot中生成测试报告
框架的思想:把整个用例结构
三、框架的编写
1、先conf包中新建cms_path将项目中的项目包的路径都打印出来
import os
base_path=os.path.dirname(os.path.dirname(__file__))
print(base_path) #项目路径
conf_path=os.path.join(base_path,'conf')
print(conf_path) #conf路径
data_path=os.path.join(base_path,'data')
print(data_path) #data路径
public_path=os.path.join(base_path,'public')
print(public_path) #public路径
pages_path=os.path.join(base_path,'public','pages')
print(pages_path) #pages路径
utils_path=os.path.join(base_path,'public','utils')
print(utils_path) #pages路径
report_path=os.path.join(base_path,'report')
print(report_path) #report路径
run_path=os.path.join(base_path,'run')
print(run_path) #data路径
testcase_path=os.path.join(base_path,'testcase')
print(testcase_path) #data路径
2、在conf包中新建一个cms_conf.ini的文件:
将cms中url、账号、密码写上
[test_data]
url=http://cms.e70w.com/manage/login.do
username=admin
pwd=123456
新建好了ini文件,就要读取ini文件
3、在public中utils中新建 read_conf.py来读取ini文件
from configparser import ConfigParser
from conf.cms_path import *class Read_Tni(ConfigParser):def __init__(self,filename):super(Read_Tni,self).__init__()self.filename=filenameself.read(self.filename)def read_data_ini(self,section=None,option=None):value=self.get(section,option)return value
file_path=os.path.join(conf_path,'cms_conf.ini')
read=Read_Tni(file_path)
url=read.read_data_ini('test_data','url')
# print(url)
username=read.read_data_ini('test_data','username')
# print(username)
pwd=read.read_data_ini('test_data','pwd')
# print(pwd)
4、在data包下新建一个excel 表格,填写信息如下
(1)打开data存放地址
(2)xlsx中填写的内容
写好以上内容,进行保存。有了excel表格就要读取excel中的内容
==================================
5、我们要读取excel表格:在util中新建read_excel.py文件,通过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):self.wookbook=xlrd.open_workbook(filename)self.sheetname=self.wookbook.sheet_by_name(sheet_name)def get_excel_data(self,row,col):value=self.sheetname.cell(row,col).valuereturn value
if __name__ == '__main__':file=os.path.join(data_path,'data.xlsx')dx=Read_Excel(file,'cms_data')url=dx.get_excel_data(1,0)print(url)username=dx.get_excel_data(1,1)print(username)pwd= dx.get_excel_data(1, 2)print(pwd)
===================================
在public中pages包下新建两个:BasePages和pages_elemnet 两个py文件:
BasePages包: