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.页面操作类:main_page.py

内容为一些页面公共操作,如通过id定位元素并赋值给它

猜你喜欢

转载自www.cnblogs.com/ziyuyuyu/p/9186589.html