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

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

接口:
单图片上传接口,上传结果查询接口 (一次查全部)
流程:
在上传多个图片后,查询结果状态,响应信息格式如下:
{"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)重新上传并再次提取返回结果;不满足的话一直执行,满足就跳出循环,然后整个线程组做一个大的循环,上传多少图片就循环多少次

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