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

stone9159 · 2020年10月28日 · 最后由 stone9159 回复于 2020年10月29日 · 1939 次阅读

接口测试删除或则编辑,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 的返回值,这样写出的代码通用性不强,

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册