接口测试 请问 JMeter 能否实现如下场景?

今晚打老虎 · 2023年09月15日 · 最后由 Violet_yoo 回复于 2023年09月19日 · 9774 次阅读

接口:
单图片上传接口,上传结果查询接口 (一次查全部)
流程:
在上传多个图片后,查询结果状态,响应信息格式如下:
{"data":[
{"id":"1","status":"success"},{"id":"2","status":"success"},{"id":"3","status":"success"},{"id":"4","status":"success"},
]}
查询后识别内部所有 status,如有失败的则删除本 id 对应图片后再次上传本 id 图片(不确定上传接口是否含覆盖处理,暂视如此)
上传后再次重复上方流程,检查所有结果状态,直到全成功后跳出循环,调用后续接口

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 9 条回复 时间 点赞

感觉 jmter 实现需要后置处理器写代码,要是会 python+request,用这个更简单点

可以是可以,就是有点麻烦。在 beanshell 或者 jsr223 那里写代码搞。
提供个思路:
1、请求参数放到前置 beanshell 里处理
2、处理响应的放在后置,可以遍历下 data 列表里面的 status,如果有失败的就记录下来,然后获取全局变量里面的请求参数,判断是哪个 id,然后把相应的图片删除。并且返回本次请求结果(设置成全局变量),如果有失败的就返回 fail,全成功就返回 success
3、请求外面加个循环控制器,判断条件就是代码返回的请求结果
具体实现逻辑还得你自己来。

简单粗暴的方法就是上传一张图片就查一次,放 if 控制器里,查成功了就下一条

对 weiHsGood 回复

查询接口是查全部的,无法区分

对 lujunxian 回复

清楚自写会很简单,就是想确定下用 Jmeter 的插件能否实现,现在看来不能

对 Mr.Shuo 回复

多谢各位的回复,看来固定插件是没法实现的

感觉直接用 python 请求上传图片接口,实现起来会很容易

新上传的成功数据应该会在全部结果里吧,遍历全部结果里面的 data 进行验证

如果接口返回的数据是按照上传顺序排序的,可以考虑下面这个方案是否能够实现
创建一个线程组,放入上传图片接口,请求后提取返回结果,如果图片上传失败,通过 if 逻辑控制器进入 if 条件,if 条件执行:1)删除上传失败的图片;2)重新上传并再次提取返回结果;不满足的话一直执行,满足就跳出循环,然后整个线程组做一个大的循环,上传多少图片就循环多少次

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