本技术涉及大数据,特别是涉及一种非功能测试方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
背景技术:
1、随着大数据技术的发展,出现了各种各样的应用软件,而在软件系统投入使用时,需要对软件系统进行非功能测试。相对于功能测试,非功能测试用于测试和验证软件系统的各种性能指标,例如:系统最大的吞吐量、最大的并发量、响应时间、可靠性、可用性、极限可恢复性、流量控制有效性、集群有效性、一键启停有效性,以及服务进程自我拉起有效性等。在进行非功能测试过程中,发测系统需要从请求参数列表取出一个请求参数,生成请求报文,然后调用服务接口,以使得受测系统完成对应请求参数的测试。
2、然而,目前发测系统获取请求参数一般是循环按序选取,例如:第一次请求选取请求参数列表中的第一个参数,第二次请求选取请求参数列表中的第二个参数,第n次请求选取了请求参数列表中的第n个参数。当到达请求参数列表末尾时,又从第一个请求参数开始。这种选取请求参数的方式很难测试出死锁和热点资源竞争等问题。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种能够使得请求参数呈现出真实业务场景中的随机化和冷热不均这两个特征,从而使得非功能测试更接近真实业务场景,更有利测试出死锁或者热点资源竞争等问题的非功能测试方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
2、第一方面,本技术提供了一种非功能测试方法,包括:
3、读取请求参数列表,其中,所述请求参数列表包括以下至少一种:静态请求参数列表,动态请求参数列表;
4、将所述请求参数列表随机打乱;
5、从预设的随机序号发生器获取一个随机序号,并按照所述随机序号从随机打乱后的请求参数列表中读取对应的请求参数;
6、根据读取到的请求参数组装请求报文,并将所述请求报文发送给受测系统;
7、接收所述受测系统返回的响应报文,并对所述响应报文进行解析,得到解析结果;
8、根据所述解析结果提取所述受测系统的指标数据,生成非功能测试报告。
9、在其中一个实施例中,步骤a包括:所述读取请求参数列表,包括:
10、从预设的存储路径读取静态请求参数列表,和/或,从服务接口返回的响应报文中读取动态请求参数列表。
11、在其中一个实施例中,在从预设的随机序号发生器获取一个随机序号之前,所述方法还包括:
12、判断所述预设的随机序号发生器是否设置了随机变量的取值范围;
13、若已经设置了随机变量的取值范围,则采用已经设置的取值范围;
14、若未设置随机变量的取值范围,则设置随机变量的取值范围为0至m-1的整数,其中,m表示请求参数列表中的参数个数,m为大于1的自然数。
15、在其中一个实施例中,当读取静态请求参数列表时,所述预设的随机序号发生器包括:离散型均匀分布随机数发生器、二项分布随机数发生器、自定义随机序号发生器中的任一种;
16、当读取动态请求参数列表时,所述预设的随机序号发生器包括:离散型均匀分布随机数发生器,或者二项分布随机数发生器。
17、在其中一个实施例中,在读取请求参数列表之前,所述方法还包括:
18、设置非功能测试的终止条件,其中,所述终止条件包括:时长,和/或循环次数。
19、在其中一个实施例中,在生成非功能测试报告之前,所述方法还包括:
20、判断是否达到所述终止条件;
21、若达到所述终止条件,则终止非功能测试;
22、若未达到所述终止条件,则重新从预设的随机序号发生器获取一个随机序号,并按照所述随机序号从随机打乱后的请求参数列表中读取对应的请求参数;根据读取到的请求参数组装请求报文,并将所述请求报文发送给受测系统;接收所述受测系统返回的响应报文,并对所述响应报文进行解析,得到解析结果;根据所述解析结果提取所述受测系统的指标数据。
23、第二方面,本技术还提供了一种非功能测试装置,包括:
24、第一读取模块,用于读取请求参数列表,其中,所述请求参数列表包括以下至少一种:静态请求参数列表,动态请求参数列表;
25、列表打乱模块,用于将所述请求参数列表随机打乱;
26、第二读取模块,用于从预设的随机序号发生器获取一个随机序号,并按照所述随机序号从随机打乱后的请求参数列表中读取对应的请求参数;
27、报文发送模块,用于根据读取到的请求参数组装请求报文,并将所述请求报文发送给受测系统;
28、响应报文处理模块,用于接收所述受测系统返回的响应报文,并对所述响应报文进行解析,得到解析结果;
29、测试报告生成模块,用于根据所述解析结果提取所述受测系统的指标数据,生成非功能测试报告。
30、第三方面,本技术还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
31、读取请求参数列表,其中,所述请求参数列表包括以下至少一种:静态请求参数列表,动态请求参数列表;
32、将所述请求参数列表随机打乱;
33、从预设的随机序号发生器获取一个随机序号,并按照所述随机序号从随机打乱后的请求参数列表中读取对应的请求参数;
34、根据读取到的请求参数组装请求报文,并将所述请求报文发送给受测系统;
35、接收所述受测系统返回的响应报文,并对所述响应报文进行解析,得到解析结果;
36、根据所述解析结果提取所述受测系统的指标数据,生成非功能测试报告。
37、第四方面,本技术还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
38、读取请求参数列表,其中,所述请求参数列表包括以下至少一种:静态请求参数列表,动态请求参数列表;
39、将所述请求参数列表随机打乱;
40、从预设的随机序号发生器获取一个随机序号,并按照所述随机序号从随机打乱后的请求参数列表中读取对应的请求参数;
41、根据读取到的请求参数组装请求报文,并将所述请求报文发送给受测系统;
42、接收所述受测系统返回的响应报文,并对所述响应报文进行解析,得到解析结果;
43、根据所述解析结果提取所述受测系统的指标数据,生成非功能测试报告。
44、第五方面,本技术还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
45、读取请求参数列表,其中,所述请求参数列表包括以下至少一种:静态请求参数列表,动态请求参数列表;
46、将所述请求参数列表随机打乱;
47、从预设的随机序号发生器获取一个随机序号,并按照所述随机序号从随机打乱后的请求参数列表中读取对应的请求参数;
48、根据读取到的请求参数组装请求报文,并将所述请求报文发送给受测系统;
49、接收所述受测系统返回的响应报文,并对所述响应报文进行解析,得到解析结果;
50、根据所述解析结果提取所述受测系统的指标数据,生成非功能测试报告。
51、上述非功能测试方法、装置、计算机设备、计算机可读存储介质和计算机程序产品,读取请求参数列表,其中,所述请求参数列表包括以下至少一种:静态请求参数列表,动态请求参数列表;将所述请求参数列表随机打乱;从而可以将请求参数列表中的参数顺序进行随机打乱,使得每个请求参数有公平且均等的机会获得概率分布中的不同位置。从预设的随机序号发生器获取一个随机序号,并按照所述随机序号从随机打乱后的请求参数列表中读取对应的请求参数;从而可以根据生成的随机序号采用随机乱序的方式从请求参数列表中读取参数,使得每个参数被读取的概率呈现出的随机化和冷热不均这两个特征。根据读取到的请求参数组装请求报文,并将所述请求报文发送给受测系统;接收所述受测系统返回的响应报文,并对所述响应报文进行解析,得到解析结果;根据所述解析结果提取所述受测系统的指标数据,生成非功能测试报告。从而实现了从请求参数列表随机读取请求参数,使得各个请求参数的调用量符合预设的概率分布,且请求参数呈现出真实业务场景中的冷热不均的特征,使得非功能测试更接近真实业务场景,从而更有利测试出死锁或者热点资源竞争等问题。
1.一种非功能测试方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述读取请求参数列表,包括:
3.根据权利要求1所述的方法,其特征在于,在从预设的随机序号发生器获取一个随机序号之前,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,当读取静态请求参数列表时,所述预设的随机序号发生器包括:离散型均匀分布随机数发生器、二项分布随机数发生器、自定义随机序号发生器中的任一种;
5.根据权利要求1至4任意一项所述的方法,其特征在于,在读取请求参数列表之前,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,在生成非功能测试报告之前,所述方法还包括:
7.一种非功能测试装置,其特征在于,所述装置包括:
8.根据权利要求7所述的装置,其特征在于,所述第一读取模块,具体用于:
9.根据权利要求7所述的装置,其特征在于,还包括随机变量设置模块,用于在从预设的随机序号发生器获取一个随机序号之前,判断所述预设的随机序号发生器是否设置了随机变量的取值范围;
10.根据权利要求7所述的装置,其特征在于,当读取静态请求参数列表时,所述预设的随机序号发生器包括:离散型均匀分布随机数发生器、二项分布随机数发生器、自定义随机序号发生器中的任一种;
11.根据权利要求7至10任意一项所述的装置,其特征在于,还包括:终止条件设置模块,用于设置非功能测试的终止条件,其中,所述终止条件包括:时长,和/或循环次数。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:终止条件判别模块,用于判断是否达到所述终止条件;
13.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
15.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
