后台接口,动态生成测试用例名称,测试用例请求数据

Posted qianjinyan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了后台接口,动态生成测试用例名称,测试用例请求数据相关的知识,希望对你有一定的参考价值。

做自动化测试刚入门的时候,我们一般用Jemter配置请求url/port,请求方式,然后编写一条条case, 将对应的case中创建符合的请求body_sample

一般的后台接口,需要考虑的无非是如下:

正确的请求,验证数据库中对应的数据被创建/更新,验证Response中返回码匹配

异常的请求,对应下面的图 

技术图片

 

必传字段,一一验证,
请求传入的必传字段1未传
请求传入的必传字段2未传
...

 

必传字段传空,一一验证,
请求传入的必传字段1传空,验证返回xxx
请求传入的必传字段2传空,验证返回xxx

 


请求传入的字符串超过最大长度限制,
比如name字段最大允许20个长度,请求传入的name是21个中文字符,验证返回xxx
考虑英文模式,需要接口说明文档先澄清中英文长度是否一致,因为比如sqlserver数据库中,varchar()和nvarchar()对中英文区别
...

 

请求传入的方式为get,不是规定的post,验证返回xxx
请求传入的请求体是json格式

 

========================================================

 

有没有遇到过以下一些变更
比如请求中的必传字段,忽然又增加了一个,
比如请求中的入参的名称,从telephone更改成了mobile

 

那请求体如果本身字段已经很多了,那这时候要逐个更改测试用例中的请求体,是不是特别费事儿
而开发只需要将POJO中的实体,增加一个属性,用对象来进行接收即可,
只需要话费几分钟的时间,
而测试将测试数据逐个修改,既耗费时间,又不学习新技能,这样的蠢活儿做多了,自己都快怀疑人生。

那我们能够动态地生成测试用例和测试数据吗?

只要多动脑,就可以。基于上面的想法,我就开发了以下的测试平台,可以通过输入接口的入参和入参的类型,动态生成测试用例名称和测试用例的数据。目前是json格式的body。 

https://www.88bugs.com/bug/login

 如下注册接口,需要6个入参,其中5个入参是必传参数。

我只需要在平台中,填写入参名称,入参Sample,入参最大长度,就可以让平台替我们生成测试用例。

技术图片

依次点击页面上的button,生成对应类型的测试用例

技术图片

然后点击下载的button,将自己的测试用例下载下来

技术图片

有了测试用例和测试数据,想进行运行,就很方便了,你可以用Jmeter运行,可以用java+httpclient,可以用python+requests等等

当然,我这边做的还不全,可以继续新增mobile应该有的格式,比如1打头且必须长度11位且全是数字,比如邮箱需要含有@和.等,将这些常用的检验封装成方法,以后直接拿来调用

如果,考虑到请求体中通常会有加密字段,根据各种规则加密,可以在写一些方法,若干个字段通过某种方式加密等等

目前只是个demo,需要更多的时间,和api 接口的特征,再来进行开发

以上是关于后台接口,动态生成测试用例名称,测试用例请求数据的主要内容,如果未能解决你的问题,请参考以下文章

20191011-构建我们公司自己的自动化接口测试框架-TestData的数据准备

yapi平台--接口自动化实施

自动化测试接口大纲

python 之 自制测试框架

(转)接口测试用例设计(详细干货)

软件测试通用接口测试用例设计