前些天留意到 pytest-xlsx 这个插件,支持 Excel 编写测试用例,包括 HTTP接口和 web UI 用例。本质上是利用 pytest的hook功能读取解析Excel文件并执行。用 Excel管理 Web UI 用例相当鸡肋,但是,用数据文件管理HTTP接口用例的的使用场景要广泛得多。否则,HttpRunner、pytest-auto-api2(七月)也不会得到广泛得关注了。
虽然,... 但是 ...
seldom本来就支持各种数据驱动文件,前公司在写产线拨测用例的时候,由于产线拨测用例比较简单,用Excel编写用例确实更加方便,然后通过 @file_data()
装饰器进行解析执行。为何不更进一步,封装成一个命令去执行Excel的接口用例。
试用场景:
-
仅适用于单接口的调用。
-
不依赖于登录接口的token。
所以,不用着急吐糟不支持xxx,不满足需求就老老实实去写代码吧!如果只是单接口的自动化,个人认为还是不错的!
编写Excel 接口测试用例
首先,创建一个Excel文件,格式如下。
name | api | method | headers | param_type | params | assert | exclude |
---|---|---|---|---|---|---|---|
简单GET接口 | /get | GET | {} | data | {} | {} | [] |
简单POST接口-json参数 | /post | POST | {} | json | {} | {} | [] |
... |
参数说明
字段 | 说明 | 列子 |
---|---|---|
name | 用例的名称,会在测试报告中展示。 | |
api | 接口的地址,可以写完整的URL地址, 也可以只定义路径, base_url 在 confrun.py | 例如: http://www.httpbin.org/get or /get |
method | 接口的请求方法,必须大写,不允许为空 | 支持: GET 、 POST 、 PUT 、 DELETE |
headers | 请求头,不允许为空,默认为 {} ,字段必须双引号 " 。 | 例如: {"user-agent":"my-app/0.0.1"} |
param_type | 接口参数类型,必须小写,不允许为空。 | 例如: data 、 json |
params | 接口参数,不允许为空,默认为 {} ,字段必须双引号 " 。 | 例如: {"id":1,"name":"jack"} |
assert | 断言接口返回,允许为空 或 {} , | 例如: {"status":200,"success":True,"data":[...]} |
exclude | 断言过滤字段,一些特殊的字段会导致断言失败,需要过滤掉。 | 例如: ["X-Amzn-Trace-Id","timestamp"] |
具体编写的HTTP接口用例:
你会发现,API 只有路径,基础的URL地址呢?用例重跑次数支持吗?报告名称怎么设置?超时时间...
这些都支持,seldom命令本身就有配套的 confrun.py
配置文件,可以配置这些参数。
我们可以创建 confrun.py
配置文件进行配置。
运行测试用例
首先,安装seldom==3.8.0最新版本版本。
然后,准备 excel测试文件 和 confrun.py
文件。
参考例子:https://github.com/SeldomQA/seldom/tree/master/api_case
然后,执行 seldom--api-excel
命令运行Excel测试用例:
最后,查看HTML测试报告。
最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取 【保证100%免费】
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。