Doraemon-接口自动化测试工具
这是一个自动生成接口测试测试用例的项目, 您可以通过如下方式使用他
run in python3 当你git clone 该项目后,可以通过如下命令配置你的环境 如果你习惯使用venv环境, 那么你可以进行如下操作
>>> cd doraemon
>>> . venv/bin/activate
>>> pip3 install -r requirements.txt
测试用例的编写
在根路径下找到cases路径
在cases路径下, 新增 .json 尾缀的文件
如果是单个文件单个case, 可参考如下示例: test_history_day.json
{"test_get_history_days": {"url": "http://api.juheapi.com/japi/toh","params": "v=&month=&day=&key=1d39d53a70ebed87d5cabbc8b73b96e2","method": "get","desc": "测试历史上的今天接口, get请求","assert": {"result": ["len", 0],"error_code": 10005}}
}
用字典包含字典的结构进行保存
在上面的示例中, {key: {...}},
文件名表示生成测试用例中的class的命名(以test开头,下划线分割多个单词)
key表示测试方法名, 如果需要case有序执行, 可以将示例中:
test_get_history_days 修改为test_1_get_history_days
key对应的字典, 是这条case中所有的需要用到的参数, 目前支持结构体如下
key | value | Sample |
ResponseType | 验证返回结构体类型 | {"ResponseType": ["type", "dict"]}(支持字段类型验证) |
url | 对应接口地址 | http://api.juheapi.com/japi/toh |
method | 请求方法 | get |
desc | 测试报告对应的用例描述信息 | 测试历史上的今天接口, get请求 |
assert | 测试断言数据 | {"result": ["len", 0], "error_code": 10005} |
params | get方法需要传递的数据 | v=&month=&day=&key=1d39d53a70ebed87d5cabbc8b73b96e2 |
data | post提交表单数据 | {"pno":1,"ps":30,"dtype":"json","key":"4beb9d77d2b95ce9bec6d8363ee5a620"} |
json | post提交json数据 | {"pno":1,"ps":30,"dtype":"json","key":"4beb9d77d2b95ce9bec6d8363ee5a620"} |
schema | 需要断言返回数据的结构体验证 | TODO |
headers | 请求头信息 | {"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/63.0.3239.132 Safari/537.36"} |
cookies | 需要自定义cookies信息 | 字典类型的key value 键值对 |
run.py
当你编写完成测试用例后, 可以通过以下命令运行测试
python3 run.py
>>> Testing ...
run.py是一个可以接受外部传参的文件, 当你需要自定义测试用例路径/ 测试报告生成路径 / 测试用例的Pattern时, 可以先通过 python3 run.py --help 来查看对应的入参后按需修改
? doraemon [master] ? python3 run.py --help
Usage: run.py [OPTIONS]Options:--cases TEXT case file path--pattern TEXT get cases file pattern--report TEXT generator report in path--help Show this message and exit.
默认参数配置如下
@click.option('--cases', default='src/testcases/', help="case file path")
@click.option('--pattern', default='*.py', help="get cases file pattern")
@click.option('--report', default='src/report/', help="generator report in path")
感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
① 2000多本Python电子书(主流和经典的书籍应该都有了)
② Python标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)
在我的QQ技术交流群里(技术交流和资源共享,广告进来腿给你打断)
可以自助拿走,群号953306497(备注“csdn111”)群里的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。
Doraemon-接口自动化测试工具相关推荐
- 测试进阶必备,这5款http接口自动化测试工具简直不要太香~
现在市场上能做接口自动化测试的工具有很多,一搜一大把,让人眼花缭乱.我们去选择对应实现方式时,不管是框架体系还是成熟稳定的工具,核心目的都是期望引入的技术能在最低投入的情况下达到最优效果. 那么我们选 ...
- 类似postman的接口自动化测试工具,为什么都在用 apifox
接口测试很多人都会用到 postman,但实际上,在当下国内测试流程中,postman 有很多功能不符合国人的操作习惯,本文介绍一个接口自动化测试工具,已经在很多公司的测试团队中大量使用,它的主要应用 ...
- 【1个月快速学习自动化测试】接口自动化测试(4) —— 接口自动化测试工具介绍
接口测试的全称是应用程序编程接口(API)测试,从原理上来说,接口测试是模拟客户端向服务器端发送请求,然后检查能否获得正确的返回信息.接口测试用于测试RESTful API.SOAP Web服务,这些 ...
- 国产化的接口测试、接口自动化测试工具apifox的介绍及使用
一.Apifox的介绍 1.Apifox 是 API 文档.API 调试.API Mock.API 自动化测试一体化协作平台,它的定位 Postman + Swagger + Mock + JMete ...
- 接口自动化测试工具-Apifox 基础篇:简介
1. 接口测试的需求 2. 常用解决方案 3. 存在的问题 存在的问题存在 开发人员在 Swagger 定义好文档后,接口调试的时候还需要去 Postman 再定义一遍. 前端开发 Mock 数据的时 ...
- 2022接口自动化测试工具Postman 使用教程
一.Postman接口测试概述 1.1 接口测试 接口是指对协定进行定义的引用类型,通俗讲是就是软件系统不同组成部分衔接的约定.接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统 ...
- 如何选择接口自动化测试工具
当你准备给自己所负责的项目搭建接口自动化测试时,面对市面上多种多样的工具或者框架,是否遇到不知该选哪个工具的困惑?本片文章通过对时下使用广泛的接口自动化工具进行对比来介绍自动化工具或者框架选择策略,协 ...
- YAPI接口自动化测试工具---使用记录
目录 1.前置条件 2.开始使用 2.1 用户管理 2.2 空间 2.3 项目 2.4 接口 2.4.1 接口管理 2.4.2 测试集合 1.前置条件 yapi自动化平台已经搭建完成 yapi的官网地 ...
- Python接口自动化测试工具(Pytest+Allure+jsonpath+xlrd+excel、支持Restful接口规范)
功能 1.实现:get/post请求(上传文件)::理论上其他delete/put等请求也实现了,支持restful接口规范 2.发送邮件 3.生成allure测试报告 4.压缩测试报告文件 5.数据 ...
- FastAPI + Vue 前后端分离 接口自动化测试工具 apiAutoTestWeb
apiAutoTestWeb使用说明 apiAutoTestWeb 是为apiAutoTest的可视化版本,其采用前后端分离( FastAPI + Vue2 )方式实现 具体使用: Python3 + ...
最新文章
- java 对比两个表的字段的差异_Joolun小程序商城 2.2.2版本上线了——Java微信快速开发平台...
- 分布式架构高可用架构篇_04_Keepalived+Nginx实现高可用Web负载均衡
- mysql优化说出九条_技术分享 | MySQL 优化:为什么 SQL 走索引还那么慢?
- mysql 3.5安装_MYSQL学习笔记-06-搭建数据库
- 【操作系统】分段内存管理
- Cacti0.8.8a监控mysql
- 在ubuntu纯字符gdb界面下来开发调试嵌入式ARM
- script标签的for属性和event属性
- php curl get 微信文章,微信公众号开发:获取 access_token 的两种方式 cURL 函数 和 file_get_contents 函数...
- 《无线通信与网络》第二章 信号传输基础
- 游戏开发项目管理那些事
- OpenKG祝大家端午安康
- 三星董事长去世享年78岁,临终前最为遗憾的一件事
- linux idle是什么进程,Linux idle基础
- 配置路由urlconf
- 幼儿园小班下学期班级工作计划
- heur.riskfm.bbx病毒解决方案--www.baoluowanxiang.com
- 给计算机主机吹灰,电脑主机多久清理一次灰合理一些?一点小建议给你
- 没学懂汇编写了个CE·····
- 不能显示验证码的解决办法