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

python自动化接口自动化:4.接口自动化框架搭建实战

python之web自动化测试框架

python之web自动化测试框架

API接口自动化测试框架搭建(二十二)-全局变量config.py完整代码及解读

API接口自动化测试框架搭建-公共方法-封装写入excel用例数据方法write_excel.py