Y"才能可能覆"/>

用 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编写一个测试脚本)

python - 接口自动化测试 - TestRecharge - 充值接口测试用例

Apifox写接口自动化测试用例总结-2

python接口自动化测试-unittest-批量用例管理

Python接口自动化之执行测试用例的几种方法