用 Python 为接口测试自动生成用例
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用 Python 为接口测试自动生成用例相关的知识,希望对你有一定的参考价值。
参考技术A基于属性的测试 会产生大量的、随机的参数,特别适合为单元测试和接口测试生成测试用例
尽管早在2006年haskell语言就有了 QuickCheck 来进行”基于属性的测试“,但是目前来看这依然是一个比较小众的领域,参考资料有限,本文如有不足,欢迎指正。
在过去的测试实践中,执行测试时通常需要明确的内容(Value):
这些内容可以通过”判定树“或者”判断表“来表示,然后测试的执行过程变成了这样
可以称为 基于表的测试
在最初,这给了我们测试的方向,但是缺点也非常明显:
你要足够多的"X->Y" 才能可能覆盖到隐蔽的bug。
这里请大家回答几个问题:
如果以上问题的答案不是yes,那么 基于属性的测试 就是你需要掌握的东西!
基于属性的测试和基于表的测试,最大的区别可以这样描述:
vs
于是利用工具生成大量的X类数据,进行测试,并验证结果是否Y类。
值得注意的是:
在不同的语言中有不同的工具来实现,比如:
本文以python为例进行演示:
假设有add函数,接收两个类型整数参数,并返回它们的相加结果
首先写出一个简单的测试用例
正如前面所说,一个这样的用例,根本没信心覆盖全部的场景,例如:
所以接下来怎么办?
改为基于属性的测试
执行结果
由结果可知,工具根据 参数是整数 这一规范,自动生成、执行了大量的测试用例
接口测试和函数的单元测试非常相似:
此外接口文档作为前后端、甚至测试开发的对接窗口,对参数的要求约定的更加细致,
以OpenAPI为例,每个参数可以有以下属性:
于是为接口生成符合要求的参数就变得可行了,举个例子:
这是以unittest为例进行封装的结果,只需要在TestCase中指定openapi的内容(或路径),
启动测试框架时,会自动读取、解析接口文档,并生成测试用例
下面是部分执行日志,可以看到对接口发送了随机参数,并获得返回值
文章来自https://www.cnblogs.com/dongfangtianyu/p/api_test_by_pbt.html
以上是关于用 Python 为接口测试自动生成用例的主要内容,如果未能解决你的问题,请参考以下文章
python+pytest接口自动化(10)-自动化用例编写思路 (使用pytest编写一个测试脚本)
python+pytest接口自动化(10)-自动化用例编写思路 (使用pytest编写一个测试脚本)