一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

生成测试文件的方法及装置、设备及存储介质与流程

2022-06-05 07:01:17 来源:中国专利 TAG:


1.本公开涉及软件开发技术领域,尤其涉及一种生成测试文件的方法及装置、设备及存储介质。


背景技术:

2.locust是一款易于使用的分布式负载测试工具,它用于对网站(或其他系统)进行负载测试,并确定系统可以处理多少并发用户,完全基于事件,即一个locust节点也可以在一个进程中支持数千并发用户,不使用回调,通过gevent协程(gevent是一个基于libev的并发库,它为各种并发和网络相关的任务提供了整洁的应用程序编程接口,其中,libev是高性能事件循环/事件模型的网络库)使用轻量级过程(即在自己的进程内运行)。该测试工具具有以下特点:第一,不需要编写笨重的ui(user interface,用户界面)或者臃肿的xml(extensible markup language,可扩展标记语言)代码,基于协程而不是回调,脚本编写简单易读;第二,有一个html(hypertextmarkuplanguage,超文本标记语言) js(javascript,是运行在浏览器上的脚本语言)的ui用户界面,可以实时显示相关的测试结果;第三,支持分布式测试,用户界面基于网络,因此具有跨平台且易于扩展的特点;第四,所有繁琐的输入/输出和协同程序都被委托给gevent,替代其他工具的局限性。因此,locust性能测试脚本是一个适用性很强的负载测试工具,locust性能测试脚本的开发尤为重要。
3.然而,在开发locust性能测试脚本的过程中,需要基于locust框架的基础上进行代码的开发,因此,需要有代码基础才能进行编写,造成当前测试脚本文件的生成过程繁琐复杂,进而造成整个测试过程效率较低。


技术实现要素:

4.为了解决上述技术问题或者至少部分地解决上述技术问题,本公开的实施例提供了一种生成测试文件的方法及装置、设备及存储介质。
5.第一方面,本公开的实施例提供了一种生成测试文件的方法,包括以下步骤:
6.响应于接收到的参数查询请求,显示参数输入界面;
7.基于已知的参数的类型与待补充的测试文件模板名称之间的对应关系,根据从参数输入界面输入的参数的类型确定与其对应的待补充的测试文件模板的名称;
8.按照所述待补充的测试文件模板的名称从预存有多种待补充的测试文件模板的数据库中查询对应的待补充的测试文件模板;
9.将从参数输入界面输入的参数补充至所述待补充的测试文件模板中,生成测试文件,以根据所述测试文件执行测试。
10.在一种可能的实施方式中,所述参数输入界面包括以下参数的输入框:并发用户总数、每秒启动用户数、并发用户数等待间隔、运行时间、业务模块以及与所述业务模块对应的接口调用地址和接口调用参数。
11.在一种可能的实施方式中,所述业务模块以及与所述业务模块对应的接口调用地
址和接口调用参数通过以下方式输入参数输入界面的输入框:
12.所述业务模块通过下拉菜单选择的方式输入,所述接口调用地址和所述接口调用参数通过在输入所述业务模块之后自动填写的方式输入,其中,所述业务模块与所述接口调用地址和所述接口调用参数之间具有预设的对应关系。
13.在一种可能的实施方式中,在所述响应于接收到的参数查询请求,显示参数输入界面之前,所述方法还包括:
14.接收并存储录入的业务模块以及与其对应的接口调用地址和接口调用参数。
15.在一种可能的实施方式中,所述业务模块以及与其对应的接口调用地址和接口调用参数通过以下方式录入:
16.将业务模块以及与其对应的接口调用地址和接口调用参数作为一条数据;
17.将多条数据以列表的方式批量录入。
18.在一种可能的实施方式中,所述根据所述测试文件执行测试,包括:
19.响应于接收到的测试执行请求,对于与所述执行请求对应的测试文件,复制当前的测试文件,得到预设份数测试文件发送至指定的被测系统执行测试;
20.显示测试文件在被测系统中执行测试时的运行状态。
21.在一种可能的实施方式中,所述根据所述测试文件执行测试,包括:
22.响应于接收到的多个测试执行请求,分别确定与每个所述执行请求对应的测试文件;
23.对于与每个所述执行请求对应的测试文件,复制当前的测试文件,得到预设份数测试文件发送至指定的被测系统执行测试;
24.显示各所述测试文件在与其对应的被测系统中执行测试时的运行状态。
25.第二方面,本公开的实施例提供了一种生成测试文件的装置,包括:
26.显示模块,其用于响应于接收到的参数查询请求,显示参数输入界面;
27.确定模块,其用于基于已知的参数的类型与待补充的测试文件模板名称之间的对应关系,根据从参数输入界面输入的参数的类型确定与其对应的待补充的测试文件模板的名称;
28.查询模块,其用于按照所述待补充的测试文件模板的名称从预存有多种待补充的测试文件模板的数据库中查询对应的待补充的测试文件模板;
29.生成模块,其用于将从参数输入界面输入的参数补充至所述待补充的测试文件模板中,生成测试文件,以根据所述测试文件执行测试。
30.第三方面,本公开的实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
31.存储器,用于存放计算机程序;
32.处理器,用于执行存储器上所存放的程序时,实现上述的生成测试文件的方法。
33.第四方面,本公开的实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的生成测试文件的方法。
34.本公开实施例提供的上述技术方案与现有技术相比至少具有如下优点的部分或全部:
35.本公开实施例所述的生成测试文件的方法及装置,响应于接收到的参数查询请
求,显示参数输入界面;基于已知的参数的类型与待补充的测试文件模板名称之间的对应关系,根据从参数输入界面输入的参数的类型确定与其对应的待补充的测试文件模板的名称;按照所述待补充的测试文件模板的名称从预存有多种待补充的测试文件模板的数据库中查询对应的待补充的测试文件模板;将从参数输入界面输入的参数补充至所述待补充的测试文件模板中,生成测试文件,以根据所述测试文件执行测试,能够简化测试脚本生成过程,无需输入人员熟练掌握代码规则。
附图说明
36.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
37.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
38.图1示意性示出了根据本公开实施例的生成测试文件的方法的流程示意图;
39.图2示意性示出了根据本公开实施例的生成测试文件的方法的流程示意图;
40.图3示意性示出了根据本公开实施例的生成测试文件的装置的结构框图;
41.图4示意性示出了根据本公开实施例的生成测试文件的装置的显示模块显示服务选择页面的示意图;
42.图5示意性示出了根据本公开实施例的生成测试文件的装置的显示模块显示性能测试参数录入页面的示意图;
43.图6示意性示出了根据本公开实施例的生成测试文件的装置的显示模块显示直接录入执行页面的示意图;
44.图7示意性示出了根据本公开实施例的生成测试文件的装置的显示模块显示执行记录页面的示意图;以及
45.图8示意性示出了根据本公开实施例的电子设备的结构框图。
具体实施方式
46.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
47.参见图1,本公开的一些实施例提供了一种生成测试文件的方法,包括以下步骤:
48.s1,响应于接收到的参数查询请求,显示参数输入界面;
49.在实际应用中,所述参数输入界面包括以下参数的输入框:并发用户总数、每秒启动用户数、并发用户数等待间隔、运行时间、业务模块以及与所述业务模块对应的接口调用地址和接口调用参数。
50.s2,基于已知的参数的类型与待补充的测试文件模板名称之间的对应关系,根据从参数输入界面输入的参数的类型确定与其对应的待补充的测试文件模板的名称;
51.在实际应用中,并发用户总数、每秒启动用户数、并发用户数等待间隔和运行时间
通过手动输入参数输入界面的输入框,所述业务模块以及与所述业务模块对应的接口调用地址和接口调用参数通过以下方式输入参数输入界面的输入框:
52.所述业务模块通过下拉菜单选择的方式输入,所述接口调用地址和所述接口调用参数通过在输入所述业务模块之后自动填写的方式输入,其中,所述业务模块与所述接口调用地址和所述接口调用参数之间具有预设的对应关系。
53.在实际应用中,在所述响应于接收到的参数查询请求,显示参数输入界面之前,所述方法还包括:
54.接收并存储录入的业务模块以及与其对应的接口调用地址和接口调用参数。
55.在实际应用中,所述业务模块以及与其对应的接口调用地址和接口调用参数通过以下方式录入:
56.将业务模块以及与其对应的接口调用地址和接口调用参数作为一条数据;
57.将多条数据以列表的方式批量录入,或者,手动录入每一条数据。
58.s3,按照所述待补充的测试文件模板的名称从预存有多种待补充的测试文件模板的数据库中查询对应的待补充的测试文件模板;
59.s4,将从参数输入界面输入的参数补充至所述待补充的测试文件模板中,生成测试文件;
60.s5,响应于接收到的测试执行请求,对于与所述执行请求对应的测试文件,复制当前的测试文件,得到预设份数测试文件发送至指定的被测系统执行测试;
61.s6,显示测试文件在被测系统中执行测试时的运行状态。
62.参见图2,当同时接收多个测试执行请求时,所述方法还包括:
63.s21,响应于接收到的多个测试执行请求,分别确定与每个所述执行请求对应的测试文件;
64.s22,对于与每个所述执行请求对应的测试文件,复制当前的测试文件,得到预设份数测试文件发送至指定的被测系统执行测试;
65.s23,显示各所述测试文件在与其对应的被测系统中执行测试时的运行状态。
66.基于同一发明构思,参照图3所示,本公开的第二个示例性实施例提供了一种生成测试文件的装置,包括:显示模块11、确定模块12、查询模块13和生成模块14。
67.在本实施例中,显示模块11,其用于响应于接收到的参数查询请求,显示参数输入界面。
68.在本实施例中,确定模块12,其用于基于已知的参数的类型与待补充的测试文件模板名称之间的对应关系,根据从参数输入界面输入的参数的类型确定与其对应的待补充的测试文件模板的名称。
69.在本实施例中,查询模块13,其用于按照所述待补充的测试文件模板的名称从预存有多种待补充的测试文件模板的数据库中查询对应的待补充的测试文件模板。
70.在本实施例中,生成模块14,其用于将从参数输入界面输入的参数补充至所述待补充的测试文件模板中,生成测试文件,以根据所述测试文件执行测试。
71.在一些实施例中,所述显示模块11中,所述参数输入界面包括以下参数的输入框:并发用户总数、每秒启动用户数、并发用户数等待间隔、运行时间、业务模块以及与所述业务模块对应的接口调用地址和接口调用参数。
72.在一些实施例中,所述确定模块12中,所述业务模块以及与所述业务模块对应的接口调用地址和接口调用参数通过以下方式输入参数输入界面的输入框:
73.所述业务模块通过下拉菜单选择的方式输入,所述接口调用地址和所述接口调用参数通过在输入所述业务模块之后自动填写的方式输入,其中,所述业务模块与所述接口调用地址和所述接口调用参数之间具有预设的对应关系。
74.在一些实施例中,所述确定模块12,还用于:
75.接收并存储录入的业务模块以及与其对应的接口调用地址和接口调用参数。
76.在一些实施例中,所述确定模块12中,所述业务模块以及与其对应的接口调用地址和接口调用参数通过以下方式录入:
77.将业务模块以及与其对应的接口调用地址和接口调用参数作为一条数据;
78.将多条数据以列表的方式批量录入。
79.在一些实施例中,生成模块14,还用于:
80.响应于接收到的测试执行请求,对于与所述执行请求对应的测试文件,复制当前的测试文件,得到预设份数测试文件发送至指定的被测系统执行测试;
81.显示测试文件在被测系统中执行测试时的运行状态。
82.在一些实施例中,生成模块14,还用于:
83.响应于接收到的多个测试执行请求,分别确定与每个所述执行请求对应的测试文件;
84.对于与每个所述执行请求对应的测试文件,复制当前的测试文件,得到预设份数测试文件发送至指定的被测系统执行测试;
85.显示各所述测试文件在与其对应的被测系统中执行测试时的运行状态。
86.上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
87.对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
88.以下以测试文件为locust性能测试脚本为例,本公开的一些实施例的生成测试文件的装置的应用过程工作原理包括以下步骤:
89.第一,显示模块显示登录页面;
90.前端提供给用户登录性能测试平台的界面。输入用户名和密码字段,用户名需要在后台数据库录入,发起登录请求以后会去数据库中查询,查询到用户会登录成功,查询不到用户会弹出错误提示用户名不存在。
91.第二,显示模块显示服务选择页面;
92.如图4所示,登录成功以后,会跳转到服务选择页面,该页面会分为三个板块,分别为:性能测试入口、回归测试入口、监控入口。点击任何一个板块都会跳转到相应板块的参数录入页面。
93.第三,显示模块显示性能测试参数录入页面;
94.如图5所示,该页面左侧有导航栏菜单,菜单有以下条目:按模块执行和直接录入执行,其中,按模块执行是直接去数据库查询之前录入的测试参数,直接录入执行是手工录入生成性能测试脚本必需的参数。点击任何一个会弹出对应的标签页。
95.第四,显示模块显示按模块执行页面
96.一旦选择了按照模块执行,就会在对应的标签页中弹出按模块执行性能测试的输入参数。
97.如图5所示,该页面的输入框有:模块名称下拉菜单(支持复选),并发用户总数,每秒启动用户数,并发用户数等待间隔,运行时间和任务名称(任务id)。
98.该页面的按钮包括:
99.查询按钮:展示出来所选择模块的共同的接口列表;列表前面还可以有连通性验证按钮。点击该按钮可以测试该接口是否联通(通过发送http请求的形式验证);执行按钮,点击该按钮以后会运行性能测试脚本,其中,测试记录会计入性能测试执行记录表。
100.第五,显示模块显示直接录入执行页面;
101.如图6所示,该页面的输入框有:模块名称,并发用户总数,每秒启动用户数,并发用户数等待间隔,运行时间和任务名称(任务id)。
102.接口录入输入表:header(标头)、接口调用url(网页地址),接口调用参数,接口调用返回码校验。
103.该页面的按钮包括:列表前面有连通性验证按钮。点击该按钮可以测试该接口是否联通(通过发送http请求的形式验证);执行按钮:提交以后会把以上的接口信息保存到接口信息基础表,然后执行性能测试的过程,其中,测试执行记录会计入数据库性能测试执行记录表。
104.第六,显示模块显示执行记录页面;
105.该页面如图7所示。
106.第七,确定模块和生成模块的后台服务过程;
107.提交要执行性能测试的接口和参数列表,提交以后会在后台生成对应的locust测试脚本,测试脚本会被拷贝分发到多个被测系统上。通过locust后台分布式调度命令在多台被测系统启动服务共同对被测系统进行压力测试。其中,任务提交以后的交互过程如下:
108.1.在直接录入页面的列表上方,前端“保存”按钮,把[直接录入的接口的输入参数]入库,即把直接录入的接口的输入参数添加到接口信息基础表。在按模块查询的页面,没有该按钮。
[0109]
2.点击“执行”按钮后,前端把页面输入的所有参数(用户id、运行时长、启动间隔、每秒启动并发用户数,直接录入的接口的输入参数)以json的形式丢给后端。
[0110]
3.后端拿到前端上面的参数以后,第一步要生成执行记录(生成任务id,执行状态,生成时间,[直接录入的接口的输入参数])入库,任务的第一状态为“已提交”。
[0111]
4.后端根据执行记录生成对应的locust脚本,并把locust脚本放在项目的一个文件夹下面,同时把locust的文件路径存放到任务执行记录表中,locust脚本的名称以任务id开头。
[0112]
5.在脚本生成以后,发压机服务器调用linuxshell命令运行脚本。同时更新任务
的状态为“运行中”(依赖消息队列)。
[0113]
6.在脚本执行完成以后(运行时间结束或者被用户在前端页面强制停止),会更新任务的状态为“已结束”(依赖消息队列)。
[0114]
7.在“运行中”或“已结束”的任务状态时,前端提供查看按钮,点击以后跳转到数据标签页(执行结果的汇总统计,包括了并发用户数、响应时间、系统吞吐量等信息),还可以切换到图表标签页(以图表的形式展示出来以上参数的值)。运行过程中的结果每间隔2秒的结果要存入性能测试结果表。切换到数据标签页和切换到图表标签页以后的数据由后端服务提供,前端只需要间隔两秒发请求就可以了。
[0115]
8.任务执行记录要增加查看和停止按钮来查看性能任务执行详情,和停止性能任务。查看性能任务详情要新开一个表格页,多个性能测试任务放到一个表格页中,以不同的标签页来展示。停止性能任务以后,界面展示的内容为运行到期的内容或者点击停止按钮以后的内容(每个标签页中有三张图,分别是并发用户数,系统吞吐量,响应时间)。
[0116]
9.任务执行记录要增加显示任务id的功能。
[0117]
第八,通过显示模块查看locust脚本运行结果报告;
[0118]
所述报告有数据标签页(statistictstab页)和图表标签页(chartstab页)两种形式,其中,图表标签页包括每秒总请求数、响应时间(毫秒)、并发用户数三张图。
[0119]
本实施例的生成测试文件的装置通过提供界面的方式让用户输入生成locust性能测试脚本必须的参数,然后在后台自动化的帮用户生成性能测试脚本,能够解决编写基于locust性能测试框架脚本开发复杂度高的问题,降低脚本的开发门槛,让不懂代码编写的人员也可以通过简洁的界面操作创造出符合locust标准的性能测试脚本,进行性能测试。
[0120]
上述第二个示例性实施例中,显示模块11、确定模块12、查询模块13和生成模块14中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。显示模块11、确定模块12、查询模块13和生成模块14中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,显示模块11、确定模块12、查询模块13和生成模块14中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
[0121]
基于同一发明构思,参照图8所示,本公开的第三个示例性实施例提供的电子设备,包括处理器1110、通信接口1120、存储器1130和通信总线1140,其中,处理器1110,通信接口1120,存储器1130通过通信总线1140完成相互间的通信;
[0122]
存储器1130,用于存放计算机程序;
[0123]
处理器1110,用于执行存储器1130上所存放的程序时,实现如下所示生成测试文件的方法:
[0124]
响应于接收到的参数查询请求,显示参数输入界面;
[0125]
根据从参数输入界面输入的参数的类型确定对应的待补充的测试文件模板;
[0126]
将从参数输入界面输入的参数补充至所述待补充的测试文件模板中,生成测试文件,以根据所述测试文件执行测试。
[0127]
上述的通信总线1140可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该通信总线1140可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0128]
通信接口1120用于上述电子设备与其他设备之间的通信。
[0129]
存储器1130可以包括随机存取存储器(random access memory,简称ram),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器1130还可以是至少一个位于远离前述处理器1110的存储装置。
[0130]
上述的处理器1110可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0131]
基于同一发明构思,本公开的第四个示例性实施例还提供了一种计算机可读存储介质。上述计算机可读存储介质上存储有计算机程序,上述计算机程序被处理器执行时实现如上所述的生成测试文件的方法。
[0132]
该计算机可读存储介质可以是上述实施例中描述的设备/装置中所包含的;也可以是单独存在,而未装配入该设备/装置中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的生成测试文件的方法。
[0133]
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0134]
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0135]
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献