接口测试 url 带参数的接口怎样自动化

stone9159 · October 28, 2020 · Last by stone9159 replied at October 29, 2020 · 895 hits

接口测试删除或则编辑,url的形式为/api/role/{roleid}的形式,增加role时,roleid是自动生成的,设计自动化用例,需要先insert数据,然后使用select roleid from …来获取插入数据的id,在拼接到url上,但是因为使用的是unittest+ddt,目前的办法在用例的前置条件写插曲和查询的sql,但是有个问题就是如果用例的前提条件很复杂,比如有的是第二条Sql获取到roleid,有的是第四条才能获取到,感觉这样程序容易写死,有什么好的方法处理这种情况呢?
测试用例如图:

共收到 5 条回复 时间 点赞

pre test里写个值作为参数,每次执行case时,先执行pre test获取值,然后把这个值传到一个你写的获取roleid的方法里。只要你这个获取roleid方法足够强大,那基本啥情况都能满足

可以定义一个全局变量接收返回值,剩下的就是针对这个全局变量做操作了,详情可以参照这个:https://www.cnblogs.com/totoro-cat/p/10070902.html

可以将动态数据存入到数据库, 然后在执行请求之前在从数据库中读取一次数据,然后将这一个动态参数放在url或者参数里面

测试小白 回复

想过这个问题,但是那样就感觉用例和数据库的值绑定死了,需要单独为所有的这种情况准备测试数据,而且对于修改roleid不存在的数据,还是需要对初始数据进行查询获得id后再删除,只是少了一个插入数据的过程而已

江涛依旧 回复

因为前置添加涉及多个sql操作,而且不同的接口,可能前置条件的sql语句数量不一样,就需要每次指定我要的是第几个sql的返回值,这样写出的代码通用性不强,

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up