目录结构搭建

 Test_framework
|--config(配置文件)
|--data(数据文件)
|--drivers(驱动)
|--log(日志)
|--report(测试报告)
|--test(程序代码)
|--case(测试用例)
|--common(抽象通用代码)
|--page(页面类代码)
|--suit(测试套)
|--utils(公共方法)
|--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自动化用例框架搭建--目录结构规划的更多相关文章

  1. selenium+python自动化用例登陆界面模板

    一.基本逻辑 1.自动填写用户名和密码登录成功后跳转到相应页面 2.验证相应页面的url与给定的url是否一致,如果一致则测试通过,如果不一致则不通过 二.以jenkins登陆界面为例,代码如下 fr ...

  2. 纯python自研接口自动化脚本更新版本,让小白也能实现0到1万+的接口自动化用例

    查看完整文章点击原文链接:纯python自研接口自动化脚本更新版本,让小白也能实现0到1万+的接口自动化用例 你是否还在用postman\jmeter做接口自动化吗?用python的开源框架[unit ...

  3. python+requests+yaml实现接口自动化用例

    前言:最近也思考了一下怎么做接口自动化,以下内容属于自己目前阶段所学习到的内容,也逐渐投入自己实际工作中,把最近的学习新得跟大家分享下,话不多说,切入正题. 对接口自动化测试用例的思考:接口测试大多测 ...

  4. python+pytest接口自动化(12)-自动化用例编写思路 (使用pytest编写一个测试脚本)

    经过之前的学习铺垫,我们尝试着利用pytest框架编写一条接口自动化测试用例,来厘清接口自动化用例编写的思路. 我们在百度搜索天气查询,会出现如下图所示结果: 接下来,我们以该天气查询接口为例,编写接 ...

  5. 【Golang】基于录制,自动生成go test接口自动化用例

    背景 之前写过一篇博客,介绍怎么用Python通过解析抓包数据,完成自动化用例的编写.最近这段时间在使用go test,所以就在想能不能也使用代码来生成自动化用例,快速提升测试用例覆盖率.说干就干. ...

  6. 【Robot Framework 项目实战 04】基于录制,生成RF关键字及 自动化用例

    背景 因为服务的迁移,Jira版本的更新,很多接口文档的维护变少,导致想要编写部分服务的自动化测试变得尤为麻烦,很多服务,尤其是客户端接口需要通过抓包的方式查询参数来编写自动化用例,但是过程中手工重复 ...

  7. 【Robot Framework 项目实战 03】使用脚本自动生成统一格式的RF自动化用例

    背景 虽然大家都已经使用了统一的关键字,但是在检查了一些测试用例之后,还是发现因为大家对RF的熟悉程度不一导致的测试用例颗粒度差异很大的情况:而且在手动方式转化测试用例过程中,有不少工作是完全重复的且 ...

  8. Android UI自动化用例设计技巧

    一.封装方法 1.编程如何越来越快: 首先,需要经验丰富,知识面广. 其次,每一个熟练编程的人员,都会有自己的一个库,解决各种问题.各种通用的方法函数. 同理,自动化脚本也是编程,测试用例则为需求,U ...

  9. 命令行运行Android Robotium自动化用例或单元测试用例

    本文目录 1.运行所有的测试用例 2.运行单个测试类或某个TestSuite 3.运行某个测试类里面的某个测试方法 4.运行两个不同的测试类或类中的方法 命令行运行Android Robotium自动 ...

随机推荐

  1. 将字符串日期格式化为yyyy-mm-dd

    (CONVERT(varchar(100), CONVERT(datetime,a.con_ret_time), 23))

  2. Python之旅第五天(习题集合)

    4天时间,虽然上着班,但是学的东西还是有点多,而且晚上看的比较容易忘,所以今天是习题模式,正好教程也是这么要求的,本来以为时间不长,没想到还是很崩溃啊.不多说,上干货. #关于随机产生验证码同时验证用 ...

  3. pytest+requests+Python3.7+yaml+Allure+Jenkins+docker实现接口自动化测试

    接口自动化测试框架(用例自动生成) 项目说明 本框架是一套基于pytest+requests+Python3.7+yaml+Allure+Jenkins+docker而设计的数据驱动接口自动化测试框架 ...

  4. 阿里云部署JeecgBoot

    阿里云部署JeecgBoot 首先贴出官网教程:http://jeecg-boot.mydoc.io/?t=345682 自己在部署的时候遇到了各种各样的问题,其实一步一步的按照官网给出的步骤来是没问 ...

  5. grep/sed/awk命令查看指定时间段的日志

    *grep命令 今天遇到研发要求查询定时任务(elastic-job)在14:00-14:40的日志,使用grep命令很方便: 命令: grep '时间' '日志文件名 ' 1.例如查询2020-02 ...

  6. [CF994B] Knights of a Polygonal Table - 贪心,堆

    有 n 个骑士想决战.每个骑士都有能力值(互不相同),且身上带有一些金币.如果骑士 A 的能力值大于骑士 B ,那么骑士 A 就可以杀死骑士 B ,并获得骑士 B 身上的所有金币.但就算是骑士也不会残 ...

  7. phpstorm实现分屏展示代码

    第一种 选择你要分屏的页面 [Window]—>[Editor Tabs]—>[Split Vertically]or[Split Horizontally]  第二种 把鼠标箭头放到你想 ...

  8. nginx 无法启动:bind() to 0.0.0.0:443 failed

    bind to 0.0.0.0:443 failed.其实就是443端口被其它程序占用,要结束占用443端口导致nginx不能启动的应用. CMD: 1.查看所有程序使用的端口 netstat -ao ...

  9. 占位 LR

    占位 LR include: LR403

  10. Tomcat的使⽤

    准备 1.官⽹地址:http://tomcat.apache.org下载. 2.解压文件,并放到指定路径,给该文件授权. chmod -R 755 3.启动和停止 进入到/Users/lucas/Do ...