本发明涉及质量检测领域,具体地,涉及批量上传文件自动化方法和系统,尤其是工业meb(manufacturingexecutivebrain,智造执行大脑)特征工程中心批量上传文件自动化方法和系统。
背景技术:
目前,工业领域中大量企业的质量检测需要样本采集上传功能,以将标注后的图片上传至样本库。例如,专利文献cn111160432a公开的面板生产制造缺陷的自动分类方法及系统,包括:采集面板缺陷图片及缺陷图片对应的缺陷类别编码信息;对缺陷图片的缺陷位置打标,将打标后的缺陷图片上传至样本库;从样本库中抽取缺陷图片作为学习样本;利用学习样本训练深度学习目标检测类算法模型,生成缺陷检测模型;抽取待分类自动光学检测图片并输入缺陷检测模型,模型自动识别出aoi图片中缺陷的位置,并输出对应缺陷类别编码的置信度水平;过滤置信度小于设定阈值的缺陷图片。
但是,目前的样本采集接口缺少自动化方案。
技术实现要素:
针对现有技术中的缺陷,本发明的目的是提供一种批量标注接口自动化方法和系统。尤其是用于质量检测的批量上传文件接口自动化方法和系统。
根据本发明提供的一种批量上传文件接口自动化方法,基于jmeter作为开发工具,包括:
批量上传步骤:登录后在模拟客户端中创建文件夹;将样本上传至文件夹中;获取待上传至服务端的图片列表;根据所述图片列表将图片批量上传至服务端。
优选地,在所述批量上传步骤中:
设置beanshellpreprocessor预处理器,以编写脚本实现批量图片文件上传;
获取通过setup线程组设置用户定义的公共变量中的待批量上传图片的目录标识符directoryid、图片标识号imageid、文件名filename进行样本采集接口的参数请求;
以csvdatasetconfig参数化filename,为批量图片文件上传做准备数据;
通过httpheadermanager信息头文件管理器,对样本采集接口请求的header信息进行保存,规定接口响应数据的格式;
对listener监听器进行设置;使用viewresultstree查看结果树,查看接口请求的日志信息。
根据本发明提供的一种批量标注接口自动化方法,包括:
步骤sa:验证登录;
步骤sb:登录后,构建标注任务列表taskid;
步骤sc:根据所述标注任务列表,执行标注工作、审核工作;
其中,采用所述的批量上传文件接口自动化方法,将已标注图片批量上传至服务端。
优选地,所述步骤sa包括:
步骤sa1:初始化项目管理信息;
步骤sa2:根据登录请求信息中的项目管理登录信息,引入jar包进行base64验签校验;若验签失败,则退出登录;若验签成功,则触发步骤sa3执行;
步骤sa3:获取样本图片;
步骤sa4:采用mysql存储所述样本图片;
步骤sa5:对所述样本图片进行筛选;
步骤sa6:得到筛选后的图片,记为待标注图片;
步骤sa7:根据待标注图片创建标注任务;
步骤sa8:根据标注任务生成标注任务列表;
所述步骤sb包括:
步骤sb1:针对标注任务列表,根据标注员的操作,对所述待标注图片进行标注;其中,所述标注员是计算机自动执行标注的虚拟角色的称呼;
步骤sb2:保存标注员对待标注图片的标注,得到已标注图片;
步骤sb3:根据已标注图片创建审核任务;
步骤sb4:对齐接口请求;即审核员在审核任务中审核标注员之间的标注结果是否对齐,其中,审核员是计算机自动执行审核的虚拟角色的称呼;
步骤sb5:接收审核员的审核结果;若审核结果是通过,则认为已标注图片已标注很成功;若审查未通过,则由标注员对标注进行修改后再次审核,直到审核通过。
优选地,
项目管理信息包括公共变量,通过setup线程组设置用户定义的公共变量供接口调用,向公共变量传入初始化数据;
根据接收自登录请求者的项目管理信息,进行登录项目切换;获取项目切换的访问令牌access_token验证请求,引用三方的base64加密jar包进行验签校验,并设置base64加密后的参数为全局;设置事务控制器transactioncontroller管理各个接口的用例集;
设置预处理器beanshellpreprocessor,预置base64加密验签,供请求调用;针对标注员分别设置预处理器admin;
根据标注员的获取标注任务列表的请求,返回待标注图片的目录标识符directoryid、图片标识号imageid、文件名filename以创建标注任务,并返回标注任务列表taskid,进行标注工作流程;通过csvdatasetconfig元件参数化图片标识号imageid;
设置index索引,以统计保存标注接口请求次数,并用count函数作为参数进行循环次数控制;
通过httpheadermanager信息头文件管理器,对图片的标注、标注的保存、提交审核接口请求的header信息进行保存,规定接口响应数据的格式;
在接口完整请求编辑好后,引入loopcontroller循环控制器,来控制保存标注接口;
对listener监听器进行设置;使用viewresultstree查看结果树,查看接口请求的日志信息;
通过beanshell对脚本进行开发,并引入jar包实现接口的加密校验,令待标注图片通过jar包进行加密,允许使用者实现导入批量的待标注图片。
根据本发明提供的一种批量上传文件接口自动化系统,基于jmeter作为开发工具,包括:
批量上传模块:登录后在模拟客户端中创建文件夹;将样本上传至文件夹中;获取待上传至服务端的图片列表;根据所述图片列表将图片批量上传至服务端。
优选地,在所述批量上传模块中:
设置beanshellpreprocessor预处理器,以编写脚本实现批量图片文件上传;
获取通过setup线程组设置用户定义的公共变量中的待批量上传图片的目录标识符directoryid、图片标识号imageid、文件名filename进行样本采集接口的参数请求;
以csvdatasetconfig参数化filename,为批量图片文件上传做准备数据;
通过httpheadermanager信息头文件管理器,对样本采集接口请求的header信息进行保存,规定接口响应数据的格式;
对listener监听器进行设置;使用viewresultstree查看结果树,查看接口请求的日志信息。
根据本发明提供的一种批量标注接口自动化系统,包括:
模块ma:验证登录;
模块mb:登录后,构建标注任务列表taskid;
模块mc:根据所述标注任务列表,执行标注工作、审核工作;
其中,采用所述的批量上传文件接口自动化系统,将已标注图片批量上传至服务端。
优选地,所述模块ma包括:
模块ma1:初始化项目管理信息;
模块ma2:根据登录请求信息中的项目管理登录信息,引入jar包进行base64验签校验;若验签失败,则退出登录;若验签成功,则触发模块ma3执行;
模块ma3:获取样本图片;
模块ma4:采用mysql存储所述样本图片;
模块ma5:对所述样本图片进行筛选;
模块ma6:得到筛选后的图片,记为待标注图片;
模块ma7:根据待标注图片创建标注任务;
模块ma8:根据标注任务生成标注任务列表;
所述模块mb包括:
模块mb1:针对标注任务列表,根据标注员的操作,对所述待标注图片进行标注;其中,所述标注员是计算机自动执行标注的虚拟角色的称呼;
模块mb2:保存标注员对待标注图片的标注,得到已标注图片;
模块mb3:根据已标注图片创建审核任务;
模块mb4:对齐接口请求;即审核员在审核任务中审核标注员之间的标注结果是否对齐,其中,审核员是计算机自动执行审核的虚拟角色的称呼;
模块mb5:接收审核员的审核结果;若审核结果是通过,则认为已标注图片已标注很成功;若审查未通过,则由标注员对标注进行修改后再次审核,直到审核通过。
优选地,
项目管理信息包括公共变量,通过setup线程组设置用户定义的公共变量供接口调用,向公共变量传入初始化数据;
根据接收自登录请求者的项目管理信息,进行登录项目切换;获取项目切换的访问令牌access_token验证请求,引用三方的base64加密jar包进行验签校验,并设置base64加密后的参数为全局;设置事务控制器transactioncontroller管理各个接口的用例集;
设置预处理器beanshellpreprocessor,预置base64加密验签,供请求调用;针对标注员分别设置预处理器admin;
根据标注员的获取标注任务列表的请求,返回待标注图片的目录标识符directoryid、图片标识号imageid、文件名filename以创建标注任务,并返回标注任务列表taskid,进行标注工作流程;通过csvdatasetconfig元件参数化图片标识号imageid;
设置index索引,以统计保存标注接口请求次数,并用count函数作为参数进行循环次数控制;
通过httpheadermanager信息头文件管理器,对图片的标注、标注的保存、提交审核接口请求的header信息进行保存,规定接口响应数据的格式;
在接口完整请求编辑好后,引入loopcontroller循环控制器,来控制保存标注接口;
对listener监听器进行设置;使用viewresultstree查看结果树,查看接口请求的日志信息;
通过beanshell对脚本进行开发,并引入jar包实现接口的加密校验,令待标注图片通过jar包进行加密,允许使用者实现导入批量的待标注图片。
与现有技术相比,本发明具有如下的有益效果:
本发明模拟真实环境下进行样本采集上传功能,为产品样本采集批量上传图片文件测试提供便捷,及批量上传压测提供准备。通过模拟客户端向服务端发送上传请求,单、多线程将整理后的图片数据发送到后端服务器,解决项目在测试阶段的样本采集接口自动化问题,实现了工业meb测试时无法大量上传图片的情况,并达到模拟批量上传的真实场景。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明的方法流程示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
根据本发明提供的一种批量上传文件接口自动化方法,基于jmeter作为开发工具,包括:
批量上传步骤:登录后在模拟客户端中创建文件夹;将样本上传至文件夹中;获取待上传至服务端的图片列表;根据所述图片列表将图片批量上传至服务端。
在所述批量上传步骤中:
添加线程组-样本采集,设置simplecontroller简单控制器用于管理各个接口的用例集。
设置beanshellpreprocessor预处理器,以编写脚本实现批量图片文件上传,便于后面自由控制上传数量;
获取通过setup线程组设置用户定义的公共变量中的待批量上传图片的目录标识符directoryid、图片标识号imageid、文件名filename进行样本采集接口的参数请求;
以csvdatasetconfig参数化filename,为批量图片文件上传做准备数据,比如上传1-1000张图片;
通过httpheadermanager信息头文件管理器,对样本采集接口请求的header信息进行保存,规定接口响应数据的格式;
对listener监听器进行设置;使用viewresultstree查看结果树,查看接口请求的日志信息。
在优选例中,所述批量上传文件接口自动化方法中:
1)创建样本采集子模块:
2)添加csv数据文件设置-参数化文件夹名读取路径;
3)添加beanshellpreprocessor:
4)读取文件夹下批量文件路径;
5)使用arrays.copyofrange()方法循环读取数组数据;
6)添加http信息头管理器;
7)生成采集样本上传接口请求;
8)添加响应断言;
9)添加beanshell后置处理程序-解决中文乱码问题;
10)viewresultstree查看结果树;
11)aggresgatereport聚合报告;
12)触发listener监听器。
根据本发明提供的一种批量标注接口自动化方法,基于jmeter作为开发工具,jmeter工具本身并不能直接实现模仿对图片的批量标注测试,jmeter工具的自带函数不能实现批量标注图片中的缺陷,短时间内标注很难完成,为节省时间成本,需要对脚本进行二次开发,引入jar包实现接口的加密校验(验签),借助beanshell对脚本进行开发并引入jar包。所以本发明是依托jmeter工具本身的一些特性,进行二次开发,增加jar包引入,及beanshell完成脚本的开发,完成批量标注的难题,解决标注人员及测试人员手工难以短时间内大批量标注缺陷任务的难点。
所述批量标注接口自动化方法,包括:
步骤sa:验证登录;
步骤sb:登录后,构建标注任务列表taskid;
步骤sc:根据所述标注任务列表,执行标注工作、审核工作。
其中,采用所述的批量上传文件接口自动化方法,将已标注图片批量上传至服务端。
优选地,所述步骤sa包括:
步骤sa1:初始化项目管理信息;
步骤sa2:根据登录请求信息中的项目管理登录信息,引入jar包进行base64验签校验;若验签失败,则退出登录;若验签成功,则触发步骤sa3执行;
步骤sa3:获取样本图片;
步骤sa4:采用mysql存储所述样本图片;
步骤sa5:对所述样本图片进行筛选;
步骤sa6:得到筛选后的图片,记为待标注图片;在优选例中,筛选图片的标准可以是将清晰度低于清晰阈值等不合规的图片筛除,也可以将样本图片均作为待标注图片;也可以通过图片的id是否符合设定的条件为筛选图片。
步骤sa7:根据待标注图片创建标注任务;
步骤sa8:根据标注任务生成标注任务列表。
优选地,所述步骤sb包括:
步骤sb1:针对标注任务列表,根据标注员的操作,对所述待标注图片进行标注;其中,所述标注员是计算机自动执行标注的虚拟角色的称呼;
步骤sb2:保存标注员对待标注图片的标注,得到已标注图片;
步骤sb3:根据已标注图片创建审核任务;
步骤sb4:对齐接口请求,即审核员在审核任务中审核标注员之间的标注结果是否对齐,其中,审核员是计算机自动执行审核的虚拟角色的称呼;在优选例中,用标注员a标注的缺陷列表与标注员b标注的缺陷列表进行一一对比,假如比对结果超过设定比例,例如75%,满足下列条件,则认为标注员a和标注员b的标注结果是对齐的:
1)缺陷的种类是一致的;
2)对缺陷的描述是一致的。这样可以辅助审核员对多个标注员的标注结果进行审核,
步骤sb5:接收审核员的审核结果;若审核结果是通过,则认为已标注图片已标注很成功;若审查未通过,则由标注员对标注进行修改后再次审核,直到审核通过。
优选地,
项目管理信息包括公共变量,通过setup线程组设置用户定义的公共变量供接口调用,向公共变量传入初始化数据;
根据接收自登录请求者的项目管理信息,进行登录项目切换;获取项目切换的访问令牌access_token验证请求,引用三方的base64加密jar包进行验签校验,并设置base64加密后的参数为全局;设置事务控制器transactioncontroller管理各个接口的用例集;
设置预处理器beanshellpreprocessor,预置base64加密验签,供请求调用;针对标注员分别设置预处理器admin;
根据标注员的获取标注任务列表的请求,返回待标注图片的目录标识符directoryid、图片标识号imageid、文件名filename以创建标注任务,并返回标注任务列表taskid,进行标注工作流程;通过csvdatasetconfig元件参数化图片标识号imageid;
设置index索引,以统计保存标注接口请求次数,并用count函数作为参数进行循环次数控制;
通过httpheadermanager信息头文件管理器,对图片的标注、标注的保存、提交审核接口请求的header信息进行保存,规定接口响应数据的格式;
在接口完整请求编辑好后,引入loopcontroller循环控制器,来控制保存标注接口;
对listener监听器进行设置;使用viewresultstree查看结果树,查看接口请求的日志信息。
优选地,通过beanshell对脚本进行开发,并引入jar包实现接口的加密校验,令待标注图片通过jar包进行加密,允许使用者实现导入批量的待标注图片。
本发明使用ai技术进行质检,弥补传统机器视觉技术和人工质检缺陷,实现质检标准化、模型化,并为企业节省质检投入(包括人力成本,时间成本等)以及提升质检准确率和一致性,能够为测试团队提供定制化的测试场景。
本发明使用java作为基础开发语言,依托jmeter(接口和压力测试工具)作为基础开发工具,模拟真实环境下进行任务审核查看图片(获取directoryid、imageid)、创建标注任务、构建标注任务列表(获取taskid)、允许标注员标注、允许标注员提交审核、允许审查员对齐请求接口、审查员审核通过等一系列流程,为模拟产品手工批量标注测试提供了很大的便捷。
本发明通过模拟客户端向服务端发请求,单线程、多线程将整理后的样本图片或待标记图片数据发送到作为服务端的后端服务器,解决项目在测试阶段的模拟客户端与服务端之间接口的自动化,实现工业meb测试时标注员无法大量标注图片缺陷的情况。
下面结合优选例,对本发明进行更为具体的说明。
项目管理(pm,projectmanagement)信息包括公共变量,通过setup线程组设置公共变量(用户定义的变量),向公共变量传入获取的数据和初始化相关企业名称、企业id、请求地址、端口号、登录用户名密码、项目id、标注员姓名密码、审核员姓名密码,自定义一些任务名称、方案名称、数据集名称等基础数据信息。
根据接收自登录请求者的项目管理信息,进行登录项目切换;获取项目切换的访问令牌access_token供后面的请求使用,引用三方的base64加密jar包进行验签校验(beanshellsample),并设置base64加密后的参数为全局。
添加线程组-特征,设置transactioncontroller事务控制器用于管理各个接口的用例集。
设置beanshellpreprocessor预处理器,用于预置base64加密验签,便于后面请求调用。分别设置了admin预处理器,标注员a和标注员b预处理器。
根据标注员的获取标注任务列表的请求,返回待标注图片的目录标识符directoryid、图片标识号imageid、文件名filename以创建标注任务,并返回标注任务列表taskid,进行标注工作流程。
通过csvdatasetconfig元件参数化图片标识号imageid,便于大批量标注做准备数据,比如标注1-1000张图片,每张图片10个缺陷。
设置index索引,便于统计保存标注接口请求次数,并用count作为参数进行循环次数控制。
通过httpheadermanager信息头文件管理器,对图片的标注、标注的保存、提交审核接口请求的header信息进行保存,规定接口响应数据的格式:content-type=application/json;charset=utf-8。
在接口完整请求编辑好后,引入loopcontroller循环控制器,来控制保存标注接口。
对listener监听器进行设置;使用viewresultstree查看结果树,查看接口请求的详细日志信息,观察执行结果。
在更多的优选例中,本发明作为一个测试工具,包括:
1)userdefinedvariables用户定义变量设置,供其他接口调用;
2)接口请求头添加,调用userdefinedvariables中的ip、port;
3)登录-项目切换接设置口请求;
4)登录-项目切换接口断言;
5)获取access_token;
6)设置beanshellsampler,调用三方jar包,并设置全局;
7)特征子模块:
8)添加admin、标注员a、标注员b的beanshellpreprocessor;
9)任务审核接口请求;
10)获取directoryid、imageid、filename;
11)创建标注任务接口请求;
12)标注任务列表接口请求;
13)获取taskid;
14)标注员a-标注流程(事务控制器)-登录-项目切换-设置base64加密
15)标注员a-开始标注接口请求;
16)loopcontroller循环控制器:
17)计数器-用于统计标注的次数;
18)csv数据文件设置-参数化文件,用于大批量标注任务;
19)标注员a-保存标注接口请求;
20)标注员a-提交审核接口请求;
21)标注员b-标注流程(事务控制器)-登录-项目切换-设置base64加密:
22)标注员b-开始标注接口请求;
23)loopcontroller循环控制器:
24)计数器-用于统计标注的次数;
25)csv数据文件设置-参数化文件,用于大批量标注任务;
26)标注员b-保存标注接口请求;
27)标注员b-提交审核接口请求;
28)对齐接口请求;
29)审核员驳回接口请求;
30)审核员-审核通过:
31)标注员a、b保存标注接口请求;
32)标注员a、b提交审核接口请求;
33)审核员-审核通过接口请求;
34)listener监听器监听。
本发明还提供一种批量标注接口自动化系统,使用者可以将所述批量标注接口自动化系统作为工具,以实现批量标注图片的目的。
根据本发明提供的一种批量标注接口自动化系统,基于jmeter作为开发工具,包括:
模块ma:验证登录;
模块mb:登录后,构建标注任务列表taskid;
模块mc:根据所述标注任务列表,执行标注工作、审核工作。
其中,采用批量上传文件接口自动化系统,将已标注图片批量上传至服务端。
根据本发明提供的一种批量上传文件接口自动化系统,基于jmeter作为开发工具,包括:
批量上传模块:登录后在模拟客户端中创建文件夹;将样本上传至文件夹中;获取待上传至服务端的图片列表;根据所述图片列表将图片批量上传至服务端。
优选地,在所述批量上传模块中:
设置beanshellpreprocessor预处理器,以编写脚本实现批量图片文件上传;
获取通过setup线程组设置用户定义的公共变量中的待批量上传图片的目录标识符directoryid、图片标识号imageid、文件名filename进行样本采集接口的参数请求;
以csvdatasetconfig参数化filename,为批量图片文件上传做准备数据;
通过httpheadermanager信息头文件管理器,对样本采集接口请求的header信息进行保存,规定接口响应数据的格式;
对listener监听器进行设置;使用viewresultstree查看结果树,查看接口请求的日志信息。
优选地,所述模块ma包括:
模块ma1:初始化项目管理信息;
模块ma2:根据登录请求信息中的项目管理登录信息,引入jar包进行base64验签校验;若验签失败,则退出登录;若验签成功,则触发模块ma3执行;
模块ma3:获取样本图片;
模块ma4:采用mysql存储所述样本图片;
模块ma5:对所述样本图片进行筛选;
模块ma6:得到筛选后的图片,记为待标注图片;在优选例中,筛选图片的标准可以是将清晰度低于清晰阈值等不合规的图片筛除,也可以将样本图片均作为待标注图片;也可以通过图片的id是否符合设定的条件为筛选图片。
模块ma7:根据待标注图片创建标注任务;
模块ma8:根据标注任务生成标注任务列表。
优选地,所述模块mb包括:
模块mb1:针对标注任务列表,根据标注员的操作,对所述待标注图片进行标注;其中,所述标注员是计算机自动执行标注的虚拟角色的称呼;
模块mb2:保存标注员对待标注图片的标注,得到已标注图片;
模块mb3:根据已标注图片创建审核任务;
模块mb4:对齐接口请求,即审核员在审核任务中审核标注员之间的标注结果是否对齐,其中,审核员是计算机自动执行审核的虚拟角色的称呼;在优选例中,用标注员a标注的缺陷列表与标注员b标注的缺陷列表进行一一对比,假如比对结果超过设定比例,例如75%,满足下列条件,则认为标注员a和标注员b的标注结果是对齐的:
1)缺陷的种类是一致的;
2)对缺陷的描述是一致的。这样可以辅助审核员对多个标注员的标注结果进行审核,
模块mb5:接收审核员的审核结果;若审核结果是通过,则认为已标注图片已标注很成功;若审查未通过,则由标注员对标注进行修改后再次审核,直到审核通过。
优选地,
项目管理信息包括公共变量,通过setup线程组设置用户定义的公共变量供接口调用,向公共变量传入初始化数据;
根据接收自登录请求者的项目管理信息,进行登录项目切换;获取项目切换的访问令牌access_token验证请求,引用三方的base64加密jar包进行验签校验,并设置base64加密后的参数为全局;设置事务控制器transactioncontroller管理各个接口的用例集;
设置预处理器beanshellpreprocessor,预置base64加密验签,供请求调用;针对标注员分别设置预处理器admin;
根据标注员的获取标注任务列表的请求,返回待标注图片的目录标识符directoryid、图片标识号imageid、文件名filename以创建标注任务,并返回标注任务列表taskid,进行标注工作流程;通过csvdatasetconfig元件参数化图片标识号imageid;
设置index索引,以统计保存标注接口请求次数,并用count函数作为参数进行循环次数控制;
通过httpheadermanager信息头文件管理器,对图片的标注、标注的保存、提交审核接口请求的header信息进行保存,规定接口响应数据的格式;
在接口完整请求编辑好后,引入loopcontroller循环控制器,来控制保存标注接口;
对listener监听器进行设置;使用viewresultstree查看结果树,查看接口请求的日志信息。
优选地,通过beanshell对脚本进行开发,并引入jar包实现接口的加密校验,令待标注图片通过jar包进行加密,允许使用者实现导入批量的待标注图片。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。