转载自:http://www.cnblogs.com/LanTianYou/p/5952472.html

目录

[本文出自天外归云的博客园]

这两天用python写了一个自动化测试框架,取名为Auty。准备用来做Web方面的接口测试,以下为Auty框架一步一步的搭建过程——

首先在这里我要感谢我的大师兄朱勃的指点、交流和帮助!

Auty文件夹结构介绍

1. actions文件夹:包含了和业务相关的包含可复用方法的脚本文件,根据业务的不同可以在actions文件夹下创建不同的业务文件夹;

2. constants文件夹:包含了常量初始化的python脚本文件,根据业务划分可以再创建子文件夹或多个常量文件;

3. data文件夹:包含了测试用的数据;

4. lib文件夹:包含了支持框架运行的python文件;

5. log文件夹:包含了运行测试过程中生成的日志文件;

6. results文件夹:包含了测试结果文件;

7. scripts文件夹:包含了scripts文件夹和selections文件夹;

1)scripts文件夹下包含了测试脚本(可根据业务划分成多个子目录);

2)selections文件夹下包含了suite文件(包含了需要执行的脚本路径集合);

8. utils文件夹:包含了和业务逻辑无关的包含可复用方法的脚本文件;

Auty文件结构介绍

1. Auty文件夹下:

1)__init__.py文件:包结构所必需文件(以下所有涉及可调用脚本的文件夹下均需有此文件);

2)config.txt文件:Auty框架配置说明文件;

3)recovery.py文件:垃圾代码回收文件(用来回收执行测试过程中因故障未能自动删除的自动生成的代码);

4)requirements文件:包含了框架所需要安装的python库信息;

5)setup.py文件:执行脚本以安装requirements文件中所包含的python库;

6)start.py文件:执行脚本以启动接口自动化测试;

2. lib文件夹下:

1)exe_deco.py文件:包含修饰脚本运行时方法的文件;

2)execute_selection.py文件:包含运行suite集合下脚本方法的文件;

3)generate_html.py文件:包含根据生成的csv格式测试结果文件生成html类型测试结果文件方法的文件;

4)generate_result.py文件:包含生成csv格式测试结果方法的文件;

5)read_selection.py文件:包含读取可执行的脚本列表方法的文件;

6)recovery_code.py文件:包含垃圾代码回收方法的文件;

7)write_log.py文件:包含生成日志文件方法的文件;

3. scripts文件夹下:

1)create_selection.py文件:包含创建suite文件(all_scripts_selection.txt)方法的文件;

Auty使用步骤

1. 运行Auty/setup.py文件;

2. 编写接口测试python脚本并放到Auty/scripts/scripts目录(或子目录)下;

3. 运行Auty/scripts/create_selection.py文件生成Auty/scripts/all_scripts_selection.txt文件;

4. 修改Auty/scripts/all_scripts_selection.txt文件自定义test_selection.txt文件(名字随意起)并放到Auty/scripts/selections文件夹下;

5. 运行Auty/start.py文件开始接口自动化测试;

6. 在Auty/results文件夹下生成的测试结果文件中查看测试结果。

Auty编写过程

这个框架里scripts、utils、actions、contants四个文件夹中的内容是根据实际工作内容可以随意替换的,其他为Auty接口自动化测试框架必需的组成部分。由于后续开发工作比较琐碎,一些更改的代码不能及时更新到以下各篇文章中。最新代码请见:Github

接口测试用例编写建议

框架的诞生从某种层面上讲也是为了让编写的代码更加规范化。抛开框架而言,对于接口测试用例的编写,还是要给出以下建议:

1. 涉及接口中的url,不要写死在case中,要通过常量访问,将url存储在指定constant文件中(以免接口域名变更等原因造成的不可维护);

2. 测试用例中不要包含测试数据等可变信息,要设成变量,专门将变量的初始化工作在一个指定的文件中完成;

3. 测试用例中不要重复粘贴大段代码逻辑(不利于代码的走查,会造成代码冗余并提高出错几率),凡是可以复用的过程一律提取成方法,分类放置在指定的存放业务逻辑action的文件夹中;

4. 关于注释:用语一定要官方,注释的意义更多是对别人而言的,要让其他人一看就懂;一定要具体详细,不要话说一半;一定要位置准确,注释下方代码逻辑一定要与注释内容吻合而不是在注释下方过了一段代码后才开始注释所包含的内容逻辑。

python自动化框架搭建过程_一步一步教你编写与搭建自动化测试框架——python篇...相关推荐

  1. web自动化如何在不同浏览器运行_从理论到工具:带你全面了解自动化测试框架...

    软件行业正迈向自主.快速.高效的未来.为了跟上这个高速前进的生态系统的步伐,必须加快应用程序的交付时间,但不能以牺牲质量为代价.快速实现质量是必要的,因此质量保证得到了很多关注.为了满足卓越的质量和更 ...

  2. python自动化办公教程书籍_盘点使用Python进行自动化办公所需要的知识点

    知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 这可能是很多非IT职场人士面临的困惑,想把python用到工作中,却不知如何下手?python在自动化办公领域越来越受欢迎,批量处理 ...

  3. python自动化办公实例展示_自动化办公 Python 操控 Word

    虽然Word不好用, 但还必须得用它, python-docx是专门用于编辑Word文档的一个工具库, 它有两大用途, 自动化生成word文档 and 自动化修改文档 python word 1. 自 ...

  4. python命令窗口在哪里_详解如何在cmd命令窗口中搭建简单的python开发环境

    详解如何在cmd命令窗口中搭建简单的python开发环境 1.快捷键win+r输入cmd回车调出cmd界面,在命令行输入python回车,显示python命令无法识别 2.登陆python官网http ...

  5. python爬虫课程设计过程_[Python]新手写爬虫全过程(已完成)

    今天早上起来,第一件事情就是理一理今天该做的事情,瞬间get到任务,写一个只用python字符串内建函数的爬虫,定义为v1.0,开发中的版本号定义为v0.x.数据存放?这个是一个练手的玩具,就写在tx ...

  6. python自动化办公百度云_用Python自动办公 做职场高手全16讲 完整版 视频教程

    python这门编程最近可是非常火,不是俗谚有说"人生苦短,我用python".这是有道理的,一是它相对于其他语言,更简单易上手,二是功能可大,可以爬虫,可以写工具. 这里分享给大 ...

  7. python自动化办公实例展示_原创的20个Python自动化案例,一口一个,高效办公!...

    === 欢迎关注我的公众号:早起Python === 导读 大家好,自从4月底发布第一篇Python办公自动化办公系列文章以来,目前已经马不停蹄的更新了20个案例,累计阅读超10W+,为了方便大家阅读 ...

  8. python3.7界面设计_基于selenium+Python3.7+yaml+Robot Framework的UI自动化测试框架

    前端自动化测试框架 项目说明 本框架是一套基于selenium+Python3.7+yaml+Robot Framework而设计的数据驱动UI自动化测试框架,Robot Framework 作为执行 ...

  9. python需要音语基础_英语基础一般,如何才能学习C语言编程和Python

    早期为奠定基础不需要太多的英语基础,只需要一个简单的初级层次,当前的程序开发环境非常友好,许多人已经集成在一起,编程方便,在如何配置.编写代码时基本上打开,程序语言只不过是顺序.判断和循环语句,编写一 ...

  10. 学python最重要的是_基础、语法都不是最重要的,学Python最重要的是什么?编程思路!-站长资讯中心...

    论述 一些朋友自学python过程中,发现书也能看懂,书上的玩具代码也能看懂,但为啥自己不能做习题,不能写代码解决问题,自己不能动手写代码? 原因 初学者没有学会计算思维.解决问题的方法.编程思路. ...

最新文章

  1. 阅读记录:Learning multiple layers of representation(杂乱笔记)
  2. 【深度学习】如何将Voting和Stacking等应用到神经网络模型
  3. 基于互联网生态积累,百度Apollo智舱产品斩获智能网联创新奖
  4. Java集合篇:Map常用遍历方式 以及 性能对比
  5. 【Linux】一步一步学Linux——nohup命令(136)
  6. 支持向量机 - 从原理到算法的实现
  7. day13【前台】搭建环境
  8. MapReduce学习一些笔记
  9. [紧急通告]关于蓝色理想经典论坛无法访问的声明
  10. 【python学习笔记】爬虫总遇到的:'latin-1' codec can't encode character...
  11. 「志强课堂」成功的微商是怎么做好推广引流的?
  12. marttype加载到word中不能用_WSTMart三级分销系统是怎么接入支付宝支付的
  13. CSS font-size单位
  14. 找回SecureCRT密码
  15. xampp mysql 端口被占用_如何解决XAMPP安装后提示80端口被占用
  16. 网贷公司是什么意思? 网贷公司如何挑选更安心?【理财帮手】
  17. linux64x gtx970,Nvidia GeForce GTX 970 ( 4 GB / 七彩虹 )无法正常驱动
  18. linux 僵尸进程处理
  19. 厘米换算英尺英寸 (15 分)如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是?
  20. linux中ifconfig无法显示ip地址

热门文章

  1. CMS-订单系统的分布式事务如何处理
  2. Knoll Light Factory 3.2 for Mac 完整汉化版 灯光工厂 for Mac中文版 支持PSCC2019
  3. c语言除法保留1位小数,高精度除法小数点位数
  4. Skyline软件二次开发初级——11如何在WEB页面中的三维地图上加载和保存工程文件...
  5. 无线系列-无线通信系统组成
  6. C# installshield使用教程
  7. 通讯录制作(.csv文件转.vcf文件即vcard格式)
  8. 黄山学院计算机作业管理系统,在线作业管理系统
  9. C#局域网聊天软件 适合公司内部聊天 类qq旺旺 可实时监控桌面 商用
  10. CWM(Common warehouse metamodel)