python自动化用例框架搭建--目录结构规划
Posted 子渝渝渝
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python自动化用例框架搭建--目录结构规划相关的知识,希望对你有一定的参考价值。
目录结构搭建
1 Test_framework 2 |--config(配置文件) 3 |--data(数据文件) 4 |--drivers(驱动) 5 |--log(日志) 6 |--report(测试报告) 7 |--test(程序代码) 8 |--case(测试用例) 9 |--common(抽象通用代码) 10 |--page(页面类代码) 11 |--suit(测试套) 12 |--utils(公共方法) 13 |--ReadMe.md(加个说明性的文件,告诉团队成员框架需要的环境以及用法)
1.config层,放配置文件,把所有的项目相关的配置均放到这里,用Python支持较好的配置文件格式如ini或yaml等进行配置。实现配置与代码分离。
2.data层,放数据文件,可以把所有的testcase的参数化相关的文件放到这里,一般可采用xlsx、csv、xml等格式。实现数据与代码分离。
3.drivers层,放所需的驱动,如Chromedriver、IEDriverServer等。
4.log层,所有生成的日志均存放在这里,可将日志分类,如运行时日志test log,错误日志error log等。
5.report层,放程序运行生成的报告,一般可有html报告、excel报告等。
6.test源码层,放所有测试相关的文件:
case——测试用例
common——跟项目、页面无关的封装,如浏览器封装
page——页面相关操作封装
suite——组织的测试套件
7.utils层,所有的支撑代码都在这里,包括读取config的类、写log的类、读取excel、xml的类、生成报告的类(如HTMLTestRunner)等类和方法,都在这里。
8.ReadMe.md,说明性的文件,告诉团队成员框架需要的环境以及用法
二、已封装公共方法陈列
1.传入浏览器类型打开浏览器,初始页面为主页
from test.page.main_page import MainPage #导包
self.page = MainPage(browser_type=\'firefox\').get(self.URL, maximize_window=False)
browser_type:浏览器类型,firefox、ie、chrome
self.URL:需访问的浏览器地址,如:URL = "http://www.baidu.com"
2.获取excel文件数据
from utils.file_reader import ExcelReader #导包
datas = ExcelReader(self.excel, title_line=False).data
self.excel:需要获取的excel文件地址,如:excel = \'E:\\Software\\sichuantest\\data\\baidu.xlsx\'
title_line:是否有标题行,默认为true,如excel文件如下图所示:
title_line=true,datas={\'search\',\'selenium 灰蓝\',\'Python selenium\'}
title_line=false,datas={{\'search\':\'selenium 灰蓝\'},{\'search\':\'Python selenium\'}}
3.生成测试报告
from utils.HTMLTestRunner import HTMLTestRunner #导包
file_name = os.path.split(__file__)[-1].split(\'.\')[0] #获取用例文件名 report = REPORT_PATH + \'\\\\\' + file_name + \'_report.html\' #通过用例文件名拼接测试报告名
with open(report, \'wb\') as f:
runner = HTMLTestRunner(f, verbosity=2, title=\'html报告test\', description=\'html报告内容\') #设置测试报告的title,description
runner.run(TestBaiDu(\'test_search\')) #设置测试报告显示的用例内容
REPORT_PATH:测试报告生成路径,如:E:\\Software\\sichuantest\\report
TestBaiDu(\'test_search\'):需执行的用例函数,即测试报告显示用例内容
4.log日志打印,统一打在E:\\Software\\sichuantest\\log\\test.log文件中
from utils.log import logger #导包
logger.info(link.text)
link.text:需打印内容
打印日志内容格式如下,可通过文件名及行数进行定位
2018-06-14 16:03:38,866 - client.py[line:47] - DEBUG - GET http://www.baidu.com
5.通过config.py获取在config.yml配置变量值
如下,config.yml有配置URL变量
可以通过以下代码直接获取
from utils.config import Config #导包
URL = Config().get(\'URL\')
6.断言类:assertion.py
内容为一些公共断言操作,断言是判断用例执行成功与否的依据,规范用例都应添加
7.页面操作类:page/main_page.py,page/result_page.py..
内容为一些页面公共操作,如通过id定位元素并赋值给它
以上是关于python自动化用例框架搭建--目录结构规划的主要内容,如果未能解决你的问题,请参考以下文章
API接口自动化测试框架搭建-公共方法-封装读取excel用例数据方法read_excel.py