{
"select": {
"select_name": "SELECT username, password AS pwd FROM lea.user WHERE id <200 limit 2;",
"select_password": "SELECT username, password AS pwd FROM lea.user WHERE id <200 limit 2;",
"select_all": "SELECT username, password,age,email FROM lea.user WHERE id <200 limit 2;"
},
"write": {
"update_one": "UPDATE table_name SET column1=value1 WHERE condition",
"insert_one": "INSERT INTO table_name (column1, column2) VALUES (value1, value2)",
"delete_one": "DELETE FROM table_name WHERE condition"
}
}
Expected:预期结果,写法示例:[{"check":"result.user.name","comparator":"eq","expect":"chenyongzhi"}]
or {"check":"result.user.name","comparator":"eq","expect":"chenyongzhi"},支持的断言比较方式有如下这些:
使用文档
项目介绍
接口自动化测试项目2.0
软件架构
本框架主要是基于 Python + unittest + ddt + HTMLTestRunner + log + excel + mysql + 企业微信通知 + Jenkins 实现的接口自动化框架。
前言
公司突然要求你做自动化,但是没有代码基础不知道怎么做?或者有自动化基础,但是不知道如何系统性的做自动化, 放在 excel 文件中维护,不知道如何处理多业务依赖的逻辑,又或者你想想postman一样可以给每一条测试用例编写一些代码来处理脚本,但是又不知道怎么做。 那么 gitee 中勇哥的自动化测试框架,将为你解决这些问题。
框架优势
本框架不收取汾河费用,其优势在于测试人员直接编写测试用例,运行一个测试文件就可以自动执行所有测试用例。
框架主要使用 python 语言编写,结合 unittest 进行二次开发,用户仅需要在 excel 文件中编写测试用例, 编写成功之后,会自动生成测试用例的代码,零基础代码小白,也可以操作。
本框架支持多环境切换,多业务接口依赖,mysql 数据库断言和 接口响应断言,并且用例直接在 excel 文件中维护,无需编写业务代码, 本框架支持动态脚本函数扩展,可以随时内部预置函数,或者增加动态脚本,通过固定格式写法 {{fun()}} 动态调用,支持使用函数调用链:{{func.().()}} 本框架支持各类自定义的加密方法以及加签规则,无需修改任何代码,只需要在制定的文件中写入函数名即可 接口 unittest 框架生成 HTML 报告及 excel 用例执行报告,并且发送 企业微信通知/ 钉钉通知/ 邮箱通知/ 飞书通知,灵活配置。
实现功能
gitee 地址
接口自动化框架地址:点我查看
遇到问题
目录结构
安装教程
依赖库
参考 pipenv –Pipfile 虚拟环境文件,不一一列出
首先,执行本框架之后,需要搭建好 python 环境,python 环境搭建自行百度
使用说明
开放测试接口文档
大家可以使用开源接口中的登录、个人信息、收藏(新增、查看、修改、删除)等功能,编写接口自动化案例,然后测试程序脚本 下方是接口文档地址,大家可以自行查看(因为开源的接口,里面有些逻辑性的功能,如修改被删除的网址接口并没有过多的做判断, 因此用例中只写了一些基础的场景,仅供大家参考。)
如何创建用例
excel中的测试用例相关字段介绍
下面是一个关于一个用例中的所有字段,字段不是全部必填 下面对每一个字段的作用,做出解释:
YES/yes
,则不运行这条用例get/post/put/patch
等等/test/api/get/{{id}}/{{func(*args,**kwargs)}}
{"Content-Type":"application/json","token":"{{token}}",'time':'{{timestamp()}}'}
MD5\sha1\自定义的函数名称
等json,file,params,data
等等这几种{"projectId":"{{projectId}}","tvSequence":"{{random_string()}}"}
MD5\sha1\自定义的函数名称
等{"k": "$.projectId", "x": "$.data[0].age[3].a"}
{"k": "$.data", "x": "$.data[0].age[3].a"}
r'"id": (\d+), "name": "(\w+)",'
["a", "b"]
,则表示用a,b 变量接收上面的正则表达式的返回值name=data[0].name;ok=data[0].id;an=data[0].age[3].a
{"name": "$.select.select_data.name", "age": "$.select.select_data.age"}
[{"check":"result.user.name","comparator":"eq","expect":"chenyongzhi"}]
or{"check":"result.user.name","comparator":"eq","expect":"chenyongzhi"}
,支持的断言比较方式有如下这些:创建用例步骤
开始填写测试用例前,先看看这个init表的字段,下面我会统一讲解:
cases
文件夹下方创建被测模块或者系统,然后在系统下创建相关的excel
用例(可以复制模板excel文件来填写测试用例)common\config
文件中的TEST_CASE
修改一下即可common\config.py
中的 钉钉,邮箱,企业微信机器人等信息.id
,另外init sheet
表照中的全局初始化数据字段 中的部分字段必须填写如:以上都填写完成,记得先关闭
excel
,然后就可以单独执行test_api.py
文件,或者直接运行run.py
主入口文件,生成HTML报告及excel测试报告下面我们来看一下,如何创建用例
用例中相关字段的介绍
常用的一些内置函数
所有的内置函数都在
common/bif_functions
这个包内,用户可以自定义添加内置函数,设计内置函数一定要设计返回值,不能直接返回 None,貌似没有对 None 特殊处理 以下是一些内置函数讲解自定义函数的编写方式:
{{xxx()}}
,可以传参数到()内,比如{{token(999)}}
,也可以使用调用链,比如用例中添加等待时间
excel 字段中一个
Time
,字段值设置为数字
,单位S用例在执行前,需要单独执行 sql 或者执行后需要单独执行 sql,或者请求后立刻执行 sql 并断言 sql
excel 中有一个 method 字段,设置值为 sql 即可,后面的 SQL,SQL 变量字段按需填写即可,一定要符合规范填写 或者在请求的后面填写 sql 语句及 sql 变量,都会默认先执行 sql,再执行请求。
setup setupclass teardown tearDownClass ?
其实这套代码这些都可以不需要使用,也可以使用,定制一些初始化函数或者唯一登录这样用,做数据清晰操作?可以将sql写excel, 或者单独再excel种建立一个sheet来执行sql也是可行的,方法很多,很灵活
postman或者swagger的文件怎么快速转为测试用例?
本框架已经封装好了解析函数,直接将postman文件导出,放到指定目录 运行excel_converter.py文件,即可得到测试用例 非常快捷省事,不用一条一条复制粘贴
更换不同的数据库?
目前内置有多种数据库查链接方式,但是尚未使用起来,只是将mysql使用起来了,使用者如需要使用其他如 mongoDB 这类数据库, 可以按 mysql 设计的方式去扩展这个数据库以适应 excel测试用例编写方式,也可以联系作者处理
发送企业微信通知
可以根据需要,自由修改企业微信发送的模板等等信息
主函数执行入口
日志打印装饰器
基本数据
测试报告?
html 或者 excel 中 都有,直接自行使用查看吧
统计用例运行时长?
统计了每条用例从请求发出到响应的时长,没有统计其他时常信息,具体可以从 html 中查看
其他
独立个人信息工具介绍
直接执行
main_personal_information.py
文件就可以生成非常棒的测试数据 Python随机生成个人信息, 包括姓名、性别、年龄、出生日期、身份证号、银行卡号、电话、手机号、邮箱等信息。生成随机个人信息
赞赏
如果这个库有帮助到你并且你很想支持库的后续开发和维护,那么你可以扫描下方二维码随意打赏我,我将不胜感激