自动生成测试脚本方案浅析html
转载自 www.sohu.com/a/224590187_748431java
原标题:自动生成测试脚本方案浅析python
文:玉婷编程
本文原创,转载请注明做者及出处构想篇json
做为一名接口自动化测试工程师,平常面临最多的工做就是编写接口自动化测试脚本,那么,在 coding 的过程当中最让你以为枯燥和乏味事情有哪些?网络
痛点app
天天都要花上30%的时间去写那些不太须要思考的脚本,这真不够自动化!框架
解决方案编程语言
预期目标工具
解放双手,下降纯手力劳动占比,进而给本身提供更多的时间去思考、理解产品和设计更多“聪明”的用例
实践篇 自动化获取接口信息 分析接口自动化脚本结构和内容
自动化测试脚本结构图
筛选工做量大又有规律可循的脚本
此处规律不宜太过于复杂,可先选逻辑简单的部分,咱们主要选取如下两部分
接口类结构图
用例结构图
解析接口文档
接口信息来源于接口文档,目前市场上比较主流的几个接口文档管理工具备Swagger、RAP、WIKI 或者其余普通文档工具。
下面以解析接口文件为目的分析比较下几款工具的区别:
.
分类 | Swagger | RAP | WIKI |
---|---|---|---|
描述 | 用于生成、描述、调用和可视化RESTful风格的Web服务的框架 | 可视化接口管理工具 | 可供多人协同创做的超文本系统 |
格式 | json | json | html |
规范 | 各个参数、返回值的具体结构、类型有统一规范 | 同swagger | 须要本身约定规范 |
成本 | 直接嵌入项目中,经过开发时编写注释,自动生成接口文档,成本较低 | 须要开发按照平台规则手动输入,成本较高 | 须要按照约定规范,手动输入,成本较高 |
若是有条件,你们能够根据开发成本和解析接口文件的难易程度来综合考虑,肯定使用哪一个平台管理接口
咱们项目是 Swagger 和 WIKI 混合使用,因为平常测试看 WIKI 居多,所以早期采用 Python 爬虫利器 BeautifulSoup 来解析WIKIhtml页面
使用下来发现经过wiki来获取接口信息的一些弊端
因而,尝试解析Swagger返回的json来得到接口信息为后面生成脚本作准备
使用如下方式拿到json结果后,就能够直接按照处理字典的方式来获取须要的内容。
对于swagger.json的解析和代码生成官方也提供了一些可供使用的库swagger-codegen (java),因为编程语言的限制,咱们使用了python本身解析
如今,咱们已拿到生成代码所须要的信息
自动生成代码 代码生成工具
接口类部分脚本生成规则
因为咱们接口属因而存储在类结构中,所以根据当前脚本的API Object接口进行遍历替换便可
接口用例部分代码生成规则
特殊值用例
给每一个参数生成为0、None、空字符串这样特殊值的用例
定位参数类型
经过接口参数给出的类型,生成符合该类型的值,和一些不符合参数类型的值(健壮性),赋值后生成用例,以下代码示例
定位特定关键词参数
该生成规则须要和开发约定一些基本原则,另外也须要咱们在平常测试中多概括总结,找出那些有固定规律的用例,想办法定位生成这类用例
定位接口类型
自动生成测试脚本工具介绍 框架流程图
工具扩展性
成果和后续行动 效率提高
以一个优惠券需求为例,大约新增/更新了10个接口(约150个参数请求参数,100个返回参数),包含增删改查几种类型,编写加调试脚本在使用工具先后所花费时间对比,以下:
类型 | 工做量描述 | 不使用工具 | 使用工具 | 效率提高 |
---|---|---|---|---|
接口类 | 约250个参数 | 2日/人 | 1小时内 | 94% |
健壮性用例 | 约1000条用例 | 2日/人 | 1日/人 | 50% |
平均 | --- | --- | --- | 74% |
从上例能够看出使用脚本后的效率提升了近一半,而从设计到编写完初版工具仅花费了2~3个工做日,仍是很是值得一作的。
聚焦测试
统一规范
重构利器
后续迭代优化点
最后想说的是,这个小工具的设计思路远比实现更重要,不管使哪一种语言或库均可以实现解析文件和代码的生成,重要得是按照怎样的思路去生成脚本,在这部分上后续咱们也有不少须要摸索的地方。
手把手教你开发一个 Webpack Loader
Android.Arch.Paging: 分页加载的新选项
React Native 网络层分析
如何实现VM框架中的数据绑定
探索自动化测试的高效执行返回搜狐,查看更多