前些天留意到 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测试报告。

感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。


1万+

被折叠的 条评论
为什么被折叠?



