Jmeter/如何对一个智能识别图片的服务进行测试,随机抽取图库图片并验证其识别成功率

 

最近遇到了一个需求,需要对一个识别图片的服务进行准确度测试,本来打想用python实现进行批量测试的。但由于还需要进行压测,所以打算一起用Jmeter实现了。在这里简单记录下jmeter实现思路。

 

首先简单化下测试对象的条件

request需要以form-data携带参数与图片

response返回对图片识别的目标,有多个时返回多个,目标种类可不同;

未识别出任何目标或无目标时,返回[]

 

测试策略为,对ABCD四种情况分别建立不同的Thread Group,每个Thread Group实现一个http请求图像智能识别服务,每个Thread Group建立一个Random Variable以实现随机抽取图库图片进行验证(要求线程独立),通过BeanShell PreProcessor将随机图片的序号转换成文件存储路径并存放到四个全局变量中,并在HTTP Request中引用它。并增加BeanShell PreProcessor Assertion对请求结果进行断言验证。并记录对应执行日志信息。

首先创建测试计划

并建立四个全局变量(可以不设置默认值)

Jmeter/如何对一个智能识别图片的服务进行测试,随机抽取图库图片并验证其识别成功率_第1张图片

这里有一个前置线程组需要进行获取秘钥,以及一些加密工作的,不是本次介绍重点,就暂时不涉及了,主要是思路。

设置HTTP Request,将form-data格式的参数分成Parameters与Files Upload两类,注意勾选Use multipart/form-data

Jmeter/如何对一个智能识别图片的服务进行测试,随机抽取图库图片并验证其识别成功率_第2张图片

Jmeter/如何对一个智能识别图片的服务进行测试,随机抽取图库图片并验证其识别成功率_第3张图片

add->config ELement->Random Variable,增加一个随机变量元件,用来随机抽查图库中的照片

Jmeter/如何对一个智能识别图片的服务进行测试,随机抽取图库图片并验证其识别成功率_第4张图片

add->Pre Processor->BeanShell PreProcessor,增加一个BeanShell的前置处理元件,将随机变量randInt转换成图片路径并存储到全局变量中

Jmeter/如何对一个智能识别图片的服务进行测试,随机抽取图库图片并验证其识别成功率_第5张图片

add->Assertions->Bean Shell Assertion,增加一个断言元件,通过脚本对http response解析从而判断是否正确识别图库中的图片

Jmeter/如何对一个智能识别图片的服务进行测试,随机抽取图库图片并验证其识别成功率_第6张图片

这里需要我们预先将图库分类好,也就是准备图片数据,再对图库进行随机抽取

你可能感兴趣的:(Jmeter)