目录结构搭建

 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. layui radio手动选择失效的问题

    var radio_types = document.getElementsByName("radio_type"); for (var i = 0; i < radio_t ...

  2. Web APIs---2. DOM(1)

    1 DOM简介 1.1 定义 DOM就是文档对象模型,是W3C组织推荐的处理可扩展标记语言(HTML或者XML)的标准编程接口.W3C已经定义了一系列的DOM接口,通过这些DOM接口可以改变网页的内容 ...

  3. 1级搭建类113-Oracle 11gR2 SI FS(OEL 6.10)

    Oracle 11g 单实例文件系统搭建(EMDC) EMDC:Database Control 单实例主机.数据库等监控,这东西12c之后没有了 EMGC:Grid Control 单独安装GC软件 ...

  4. hyper-v虚拟机不能访问外网的解决方案

    直接说解决方案,将虚拟机的一张网卡改为旧版网络适配器即可.具体原因还不可知. 延申一下,一般应该使用的交换机,是“外部”类型即可.

  5. 将HTML保存为PDF

    使用的是   jsPDF 引用 <script src="https://code.jquery.com/jquery-git.js"></script> ...

  6. [tensorflow] tf.gather使用方法

    tf.gather:用一个一维的索引数组,将张量中对应索引的向量提取出来 import tensorflow as tf a = tf.Variable([[1,2,3,4,5], [6,7,8,9, ...

  7. java打印出某一指定路径下的文件夹内的所有子文件夹和文件,并区分开来

    public class printoutFile { public static void main(String[] args) { printFile(new File("D:\\te ...

  8. tcolorbox 宏包简明教程

    嗯,我消失好几天了.那么,我都在做什么呢?没错,就是写这篇文章了.这篇文章写起来着实有些费神了.于是,如果你觉得这篇文章对你有帮助,不妨扫描文末的二维码,适量赞助一下哦~! tcolorbox 宏包是 ...

  9. 在VMware下安装CentOS 7.6

    转载自https://blog.51cto.com/hnyuanzijian/2343716?appinstall=0a.点击左上角文件,新建虚拟机,选择典型安装,并下一步   b.选择稍后安装操作系 ...

  10. 记录 Docker 的学习过程 (网络篇)

    打开2个会话,分别运行以下命令 # docker run -it -P --name nginx2 nginx #-P 端口随机映射 再打开一个会话查看 运行中的容器 # docker ps -aCO ...