CN118093392A - 测试方法、装置、电子设备及存储介质 - Google Patents
测试方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN118093392A CN118093392A CN202410181243.3A CN202410181243A CN118093392A CN 118093392 A CN118093392 A CN 118093392A CN 202410181243 A CN202410181243 A CN 202410181243A CN 118093392 A CN118093392 A CN 118093392A
- Authority
- CN
- China
- Prior art keywords
- test
- target
- value
- key
- array
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 270
- 238000010998 test method Methods 0.000 title claims abstract description 6
- 238000013515 script Methods 0.000 claims abstract description 90
- 238000000034 method Methods 0.000 claims abstract description 43
- 238000004422 calculation algorithm Methods 0.000 claims description 9
- 238000004891 communication Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 12
- 238000010586 diagram Methods 0.000 description 12
- 230000006399 behavior Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000011056 performance test Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 241000282376 Panthera tigris Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000011990 functional testing Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本说明书提供一种测试方法、装置、电子设备及存储介质。所述方法包括:加载测试脚本,其中,所述测试脚本被所述多个测试设备加载;响应于与所述测试脚本相关的测试任务,获取目标变量的取值,其中,所述多个测试设备获取到的所述目标变量的取值不同;基于本测试设备获取到的所述目标变量的取值,执行所述测试任务。通过本说明书的技术方案,多个测试设备在执行同一个测试脚本相关的测试任务时,以各自获取到的不同目标变量取值作为测试数据,使得多个测试设备在执行同一测试脚本的测试过程中采用的测试数据不会存在重复,从而反映更真实全面的业务场景,提高分布式压力测试的测试结果准确性。
Description
技术领域
本说明书一个或多个实施例涉及软件测试技术领域,尤其涉及一种测试方法、装置、电子设备及存储介质。
背景技术
在分布式压力测试中,由控制机向多个压力机发送同一份测试脚本,使得多个压力机同时模拟用户行为,发送大量并发的用户请求到被测系统,监控和分析被测系统的各项性能指标,以判断在不同业务需求下,被测系统的负载能力是否满足要求。
为了模拟真实的用户行为,通常需要编写测试脚本模拟用户的请求和响应。测试脚本在运行过程中会获取测试数据,测试数据的获取需要根据不同业务场景进行参数化设置,通常通过定义随机函数,由随机函数生成随机值作为测试数据。
由此可见,在以上示出的实施例中,因为多个压力机执行的测试脚本中的测试数据为随机值,一方面,随机数可能重复,这与一部分真实业务系统需要的测试数据不符(如下单系统,同一订单号在用户支付或取消一次后,不能再重复支付或取消);另一方面,随机数分布无规律,这与一部分真实业务系统需要的测试数据不符(如读取数据库ID,数据库ID是逐渐递增的)。因此,目前的测试数据参数化方法不能反映更真实全面的业务场景,测试结果不够准确。
发明内容
本申请提供一种测试方法,应用于分布式的多个测试设备中的任一测试设备,所述方法包括:
加载测试脚本,其中,所述测试脚本被所述多个测试设备加载;
响应于与所述测试脚本相关的测试任务,获取目标变量的取值,其中,所述多个测试设备获取到的所述目标变量的取值不同;
基于本测试设备获取到的所述目标变量的取值,执行所述测试任务。
可选的,所述获取目标变量的取值,包括:
向数据库发送针对所述目标变量的键值自增操作指令,其中,所述键值自增操作指令用于对目标键的值进行自增操作,并返回自增操作后所述目标键的值,所述目标键为在所述数据库中存储的用于标识所述目标变量的键;
接收所述数据库返回的自增操作后所述目标键的值,作为所述目标变量的取值。
可选的,所述方法还包括:
根据哈希算法,对所述测试脚本的文件路径进行计算,得到哈希值;
将所述哈希值与所述测试脚本的标识符进行组合,构成所述数据库中的键;
将所述键关联的值置为初始整数值。
可选的,所述测试设备包括一个控制机和至少一个压力机,本测试设备为压力机;
所述获取目标变量的取值,包括:
向所述控制机发送针对所述目标变量的取值获取请求,其中,所述取值获取请求用于指示所述控制机读取出目标数组的首个元素,所述目标数组用于存储所述目标变量的至少一个取值;
接收所述控制机返回的所述目标数组的首个元素,作为所述目标变量的取值。
可选的,所述取值获取请求还用于指示在所述控制机读取出目标数组的首个元素之后,对所述目标数组中已被读取的元素进行删除操作。
可选的,所述取值获取请求还用于指示在所述控制机读取出目标数组的首个元素之后,将所述目标数组中已被读取的元素移动至所述目标数组的末尾。
可选的,所述目标数组由所述控制机从数据库中读取测试脚本文件,并将所述测试脚本文件以数组形式存储得到。
本申请还提供一种测试装置,应用于分布式的多个测试设备中的任一测试设备,所述装置包括:
加载单元,用于加载测试脚本,其中,所述测试脚本被所述多个测试设备加载;
获取单元,用于响应于与所述测试脚本相关的测试任务,获取目标变量的取值,其中,所述多个测试设备获取到的所述目标变量的取值不同;
执行单元,用于基于本测试设备获取到的所述目标变量的取值,执行所述测试任务。
本申请还提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述方法。
本申请还提供一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述方法。
通过以上方式,在分布式压力测试环境下,多个压力机采用控制机发送的同一测试脚本进行并发测试时,不同压力机以各自获取到的不同目标变量取值作为测试数据,使得多个测试设备在执行同一测试脚本的测试过程中采用的测试数据不会存在重复,从而反映更真实全面的业务场景,提高分布式压力测试的测试结果准确性。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是一示例性的实施例示出的一种分布式测试示意图;
图2是一示例性的实施例示出的一种测试方法示意图;
图3是一示例性的实施例示出的一种获取目标变量取值的示意图;
图4是一示例性的实施例示出的一种读取测试脚本文件的示意图;
图5是一示例性的实施例示出的一种测试装置所在电子设备的硬件结构图;
图6是一示例性的实施例示出的一种测试装置的框图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
在分布式压力测试中,由控制机向多个压力机发送同一份测试脚本,使得多个压力机同时模拟用户行为,发送大量并发的用户请求到被测系统,监控和分析被测系统的各项性能指标,以判断在不同业务需求下,被测系统的负载能力是否满足要求。
为了模拟真实的用户行为,通常需要编写测试脚本模拟用户的请求和响应。测试脚本在运行过程中会获取测试数据,测试数据的获取需要根据不同业务场景进行参数化设置,通常通过定义随机函数,由随机函数生成随机值作为测试数据。
由此可见,在以上示出的实施例中,因为多个压力机执行的测试脚本中的测试数据为随机值,一方面,随机数可能重复,这与一部分真实业务系统需要的测试数据不符(如下单系统,同一订单号在用户支付或取消一次后,不能再重复支付或取消);另一方面,随机数分布无规律,这与一部分真实业务系统需要的测试数据不符(如读取数据库ID,数据库ID是逐渐递增的)。因此,目前的测试数据参数化方法不能反映更真实全面的业务场景,测试结果不够准确。
有鉴于此,本说明书旨在提出一种测试方法,即应用于分布式的多个测试设备中的任一测试设备,使得多个测试设备在执行同一测试脚本时,以各自获取到的不同目标变量取值作为测试数据,避免测试数据重复,提高测试准确性的技术方案。
在实现时,首先加载测试脚本,其中,所述测试脚本被所述多个测试设备加载;然后,响应于与所述测试脚本相关的测试任务,获取目标变量的取值,其中,所述多个测试设备获取到的所述目标变量的取值不同;最后,基于本测试设备获取到的所述目标变量的取值,执行所述测试任务。
例如,请参见图1,图1是一示例性的实施例示出的一种分布式测试示意图。如图1所示,控制机102将测试脚本发送至多个测试设备104,以使多个测试设备104执行所述测试脚本。多个测试设备104在收到测试脚本后,首先分别加载测试脚本,然后响应于与所述测试脚本相关的测试任务,获取目标变量的取值,其中,所述多个测试设备104获取到的所述目标变量的取值不同;最后,多个测试设备104中的每一台测试设备基于本测试设备获取到的所述目标变量的取值,执行所述测试任务。
由此可见,在本说明书中的技术方案中,在分布式压力测试环境下,多个压力机采用控制机发送的同一测试脚本进行并发测试时,不同压力机以各自获取到的不同目标变量取值作为测试数据,使得多个测试设备在执行同一测试脚本的测试过程中采用的测试数据不会存在重复,从而反映更真实全面的业务场景,提高分布式压力测试的测试结果准确性。
下面通过具体实施例,结合具体的应用场景对本申请进行描述。
请参见图2,图2是一示例性的实施例示出的一种测试方法示意图。所述方法可以执行以下步骤:
步骤202:加载测试脚本,其中,所述测试脚本被所述多个测试设备加载。
例如,如图1所示,多个测试设备104在收到测试脚本后,分别加载测试脚本。
其中,测试设备可以是控制机、压力机等具有加载和运行测试脚本能力的设备;压力机又称压测机、slave机、测试机、执行机等,属于接收控制机的测试脚本,自身执行测试脚本后,向需要进行压力测试的目标机器发出压力测试的机器。压力机在接收到测试脚本后,会根据测试脚本中定义的测试场景、并发用户数、请求频率等参数,以及测试数据,模拟真实用户的行为,向被测系统发送请求,施加压力。多台压力机先加载测试脚本可以协调测试行为、避免同步延迟、提高执行效率,并便于统一管理和监控整个测试过程。
步骤204:响应于与所述测试脚本相关的测试任务,获取目标变量的取值,其中,所述多个测试设备获取到的所述目标变量的取值不同。
例如,如图1所示,多个测试设备104在响应于与所述测试脚本相关的测试任务(如测试任务为测试购物系统)后,会分别获取到目标变量(如订单号、成交量等)的取值,其中,所述多个测试设备104获取到的所述目标变量的取值互相之间不存在重复取值,比如三个测试设备104分别获取到成交量取值为10000、20000、30000。
其中,与所述测试脚本相关的测试任务包括模拟用户行为、生成负载、监控记录性能指标等,测试任务支持参数化,以便对待测试系统进行全面而深入的压力测试和性能评估。获取目标变量的取值是为了获取测试数据,测试数据是用于分布式性能测试中的输入数据,用于模拟真实场景下的系统行为和负载,包括负载数据、网络数据、硬件数据和配置数据。
举例来说,假设要对一个购物系统进行性能测试,可以使用负载数据作为测试数据来模拟真实的场景和负载,如每秒1000个用户同时进行浏览商品、添加到购物车、进行结算等操作;还可以使用网络数据作为测试数据来模拟用户在不同网络环境下访问购物系统,如网络带宽为10Mbps,延迟为100ms,丢包率为1%的网络环境。通过使用这些测试数据,在实验环境中可以模拟出真实的购物场景和负载,以评估购物系统在高负载、复杂网络和不同硬件配置下的性能表现,从而发现潜在的性能问题,如响应时间过长、系统崩溃或服务器负载过高等,并采取相应措施来优化购物系统的性能和稳定性。对于测试数据的具体类型,本说明书中对此并不进行限制。
步骤206:基于本测试设备获取到的所述目标变量的取值,执行所述测试任务。
例如,如图1所示,多个测试设备104基于各自获取到的目标变量的取值执行测试任务,如多个测试设备104分别基于各自获取到的成交量10000、20000、30000来执行测试任务。
其中,多个测试设备在收到目标变量的取值后,可以配置测试任务对应的测试环境、执行性能测试、分析测试结果。测试任务从类型上可分为功能测试、性能测试、负载测试等,关于测试任务的具体类型,本说明书中对此并不进行限制。
在示出的一种实施方式中,所述获取目标变量的取值,包括:
向数据库发送针对所述目标变量的键值自增操作指令,其中,所述键值自增操作指令用于对目标键的值进行自增操作,并返回自增操作后所述目标键的值,所述目标键为在所述数据库中存储的用于标识所述目标变量的键;
接收所述数据库返回的自增操作后所述目标键的值,作为所述目标变量的取值。
请参见图3,图3是一示例性的实施例示出的一种获取目标变量取值的示意图。如图3所示,多个测试设备104向数据库(如Redis数据库)302发送针对所述目标变量的键值自增操作指令(如incrby指令),其中,所述键值自增操作指令用于对目标键的值进行自增操作。数据库302在对所述目标变量的键值(如1)完成自增操作后,向多个测试设备104分别返回自增操作后所述目标键的值2、3、4,所述目标键为在所述数据库302中存储的用于标识所述目标变量的键,多个测试设备104接收数据库302返回的自增操作后所述目标键的值,作为所述目标变量的取值。
其中,数据库可以存储和检索数据,在本实施例中,数据库中存储了多个键值对,键值对是一种数据存储和表示方式,键值对由唯一的键(Key)和与之关联的值(value)组成,键用于唯一标识对应的值,并且可以通过键快速地检索和访问对应的值。Redis数据库中的incrby指令的操作是原子性的,即在执行时不会被其他操作打断,确保了自增操作和获取自增后值的原子性,因此可以确保在多个并发线程同时执行incrby指令时,每个线程都能够正确地获取到自增后的最新值,而不会出现竞争条件或数据不一致的问题,确保了在多线程或多个测试设备并发环境下的线程安全。为了实现值顺序自增的数据库,还可以选用ZooKeeper数据库,但与Redis数据库相比,ZooKeeper数据库占用内存大,高并发支持性一般。关于实现值顺序自增的数据库的类型,本说明书中对此并不进行限制。
在测试设备加载测试脚本前,需要先对数据库中存储的数据进行初始化,即构造当前测试任务对应数据库中使用的唯一的键(Key),以保证数据库正常运行。
在示出的一种实施方式中,所述方法还包括:
根据哈希算法,对所述测试脚本的文件路径进行计算,得到哈希值;
将所述哈希值与所述测试脚本的标识符进行组合,构成所述数据库中的键;
将所述键关联的值置为初始整数值。
例如,测试脚本的文件路径为/project5/example.groovy,根据哈希算法,对测试脚本的文件路径进行计算,得到一串字符串结果,如series2aafedeb595c971f6cfe01e8bc485f,将该字符串结果作为哈希值,将计算得到的哈希值与所述测试脚本的标识符(如123)进行组合,构成所述数据库中的键(Key):series2aafedeb595c971f6cfe01e8bc485f123;再将键关联的值置为初始整数值,如0。
其中,哈希算法是一种将任意长度的数据映射为固定长度的数据的算法,通过对输入数据进行计算,生成哈希值的输出,不同输入往往对应不同输出。哈希算法有多种类型,如MD5、SHA、Tiger等,对于哈希算法的具体类型,本说明书中对此并不进行限制。测试脚本的标识符通常是一个唯一的标识符或名称,用于区分和识别不同的测试脚本,标识符可以是一个字符串、数字或任何其他可唯一标识脚本的值。标识符的目的是确保测试脚本在分布式环境中的唯一性,以便正确地分配和执行测试任务。关于标识符的具体形式和哈希值与标识符的组合方式,本说明书中对此并不进行限制。
在示出的一种实施方式中,所述测试设备包括一个控制机和至少一个压力机,本测试设备为压力机;
所述获取目标变量的取值,包括:
向所述控制机发送针对所述目标变量的取值获取请求,其中,所述取值获取请求用于指示所述控制机读取出目标数组的首个元素,所述目标数组用于存储所述目标变量的至少一个取值;
接收所述控制机返回的所述目标数组的首个元素,作为所述目标变量的取值。
例如,如图1所示,多个测试设备104向控制机102发送针对所述目标变量的取值获取请求,其中,所述取值获取请求用于指示所述控制机读取出目标数组的首个元素,所述目标数组用于存储所述目标变量的至少一个取值;接收所述控制机102返回的所述目标数组的首个元素,作为所述目标变量的取值。
请参见表1,表1是一示例性的实施例示出的一种读取目标数组元素的示意表。如表1所示,目标数组共有5个元素,每一行属于1个元素,1个元素内的数值以逗号或空格做区分。所述取值获取请求用于指示所述控制机读取出目标数组的首个元素,即Sunyang 35这一个元素,控制机读取该元素并将该元素作为所述目标变量的取值返回给多个测试设备。
Sunyang 35 |
Wangfan 26 |
Lincong 41 |
Fangke 38 |
Zhoumen 29 |
表1
其中,目标数组存储在控制机的内存服务器中,控制机的内存服务器负责管理和分发数据。内存服务器的具体实现方式取决于分布式系统的架构和设计。常见的内存服务器技术包括分布式内存缓存系统(如Redis、Memcached)以及分布式文件系统(如HadoopHDFS)等,关于内存服务器的具体形式,本说明书中对此并不进行限制。
在示出的一种实施方式中,所述取值获取请求还用于指示在所述控制机读取出目标数组的首个元素之后,对所述目标数组中已被读取的元素进行删除操作。
请参见表2,表2是一示例性的实施例示出的一种删除已读取元素的示意表。如表2所示,在控制机已读取Sunyang 35这一个元素后,对控制机的内存服务器中存储的所述目标数组中已被读取的元素Sunyang 35进行删除操作,得到包含其余的4个元素(Wangfan26、Lincong 41、Fangke 38、Zhoumen 29)的数组。
Wangfan 26 |
Lincong 41 |
Fangke 38 |
Zhoumen 29 |
表2
其中,为了删除目标数组中已被读取的元素,控制器通常需要通过网络连接发送请求到服务器,以获取数组的数据或使用相应的编程接口进行访问。一旦获得了数组的访问权限,控制器可以通过编程的方式将数组的首个元素删除,具体的操作取决于使用的编程语言和数据结构类型。在大多数编程语言中,可以通过移动数组中的元素来删除首个元素,或者使用特定的数组操作函数来实现删除操作。在控制器的内存服务器完成删除操作后,将修改后的数组数据传输回服务器内存,或者通过相应的API调用来更新数据。对于具体的目标数组对已读取元素的删除操作,本说明书对此并不进行限制。
在示出的一种实施方式中,所述取值获取请求还用于指示在所述控制机读取出目标数组的首个元素之后,将所述目标数组中已被读取的元素移动至所述目标数组的末尾。
请参见表3,表3是一示例性的实施例示出的一种删除已读取元素的示意表。如表3所示,在控制机读取出目标数组的首个元素,即Sunyang 35这一个元素后,将控制机的内存服务器中存储的所述目标数组中已被读取的元素Sunyang 35移动至所述目标数组的末尾,得到更新顺序后的目标数组,即顺序为Wangfan 26、Lincong 41、Fangke 38、Zhoumen 29、Sunyang35的目标数组。
Wangfan 26 |
Lincong 41 |
Fangke 38 |
Zhoumen 29 |
Sunyang 35 |
表3
其中,要对元素进行移动,需要根据所使用的编程语言和服务器环境,调用相应的API或方法来完成数据的读取、删除、插入和更新操作,比如先将"Sunyang 35"从目标数组中删除,并将其保存到一个临时变量中,再将临时变量中保存的"Sunyang 35"插入到数组的末尾位置。此外,可以确保在操作之前对数据进行备份,以防止意外情况发生。对于将已读取数据移动至目标数组末尾的具体操作方法,本说明书对此并不进行限制。
在示出的一种实施方式中,所述目标数组由所述控制机从数据库中读取测试脚本文件,并将所述测试脚本文件以数组形式存储得到。
请参见图4,图4是一示例性的实施例示出的一种读取测试脚本文件的示意图。如图4所示,控制机102从数据库402中读取测试脚本文件,并将读取到的测试脚本文件以数组形式在内存服务器中进行存储。当控制机102接收到多个测试设备104发送的针对所述目标变量的取值获取请求时,从内存服务器中读取目标数组的首个元素,将该元素作为目标变量的取值向多个测试设备104进行返回。
其中,测试脚本文件用于自动化测试和验证软件系统的功能和性能,通常由软件工程师或测试工程师编写,并在编写完成后由工程师上传至测试平台的数据库中。测试脚本文件可以使用各种编程语言编写,例如Python、Java、JavaScript等。测试脚本文件可以是各种不同格式,取决于编写脚本的工程师和使用的测试框架,常见的格式包括:文本文件(.txt)、脚本文件(.py、.js、.java)、标记语言文件(如XML或JSON)等。关于测试脚本文件的具体形式,本说明书对此并不进行限制。控制机在读取到测试脚本文件时,按行读取测试脚本文件,并在按行读取测试脚本文件后将读取内容存储至目标数组时,以空格或逗号为标识,一个数值一个数字进行存储。例如在读取测试脚本文件的第一行"Sunyang 35"时,根据"Sunyang"与"35"之间的空格,确定为两个数值。内存服务器通常使用内存存储数据,而不是磁盘存储,这意味着存储在内存服务器上的数据可以更快地访问和检索。控制机的内存服务器在存储数组时,可以使用内存数据库或是使用内存缓存,关于具体的存储方式,本说明书对此并不进行限制。
与上述测试方法的实施例对应的,本说明书还提供了一种测试装置的实施例。
请参见图5,图5是一示例性的实施例示出的一种测试装置所在电子设备的硬件结构图。在硬件层面,该设备包括处理器502、内部总线504、网络接口506、内存508以及非易失性存储器510,当然还可能包括其他所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器502从非易失性存储器510中读取对应的计算机程序到内存508中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参见图6,图6是一示例性的实施例示出的一种测试装置的框图。该测试装置可以应用于如图5所示的电子设备中,以实现本说明书的技术方案。所述测试装置600可以包括:
加载单元602,用于加载测试脚本,其中,所述测试脚本被所述多个测试设备加载;
获取单元604,用于响应于与所述测试脚本相关的测试任务,获取目标变量的取值,其中,所述多个测试设备获取到的所述目标变量的取值不同;
执行单元606,用于基于本测试设备获取到的所述目标变量的取值,执行所述测试任务。
在本实施例中,所述获取单元,包括:
第一发送子单元,用于向数据库发送针对所述目标变量的键值自增操作指令,其中,所述键值自增操作指令用于对目标键的值进行自增操作,并返回自增操作后所述目标键的值,所述目标键为在所述数据库中存储的用于标识所述目标变量的键;
第一接收子单元,用于接收所述数据库返回的自增操作后所述目标键的值,作为所述目标变量的取值。
在本实施例中,所述装置还包括:
计算单元,用于根据哈希算法,对所述测试脚本的文件路径进行计算,得到哈希值;
组合单元,用于将所述哈希值与所述测试脚本的标识符进行组合,构成所述数据库中的键;
置值单元,用于将所述键关联的值置为初始整数值。
在本实施例中,所述测试设备包括一个控制机和至少一个压力机,本测试设备为压力机;所述获取单元,包括:
第二发送子单元,用于向所述控制机发送针对所述目标变量的取值获取请求,其中,所述取值获取请求用于指示所述控制机读取出目标数组的首个元素,所述目标数组用于存储所述目标变量的至少一个取值;
第二接收子单元,用于接收所述控制机返回的所述目标数组的首个元素,作为所述目标变量的取值。
在本实施例中,所述取值获取请求还用于指示在所述控制机读取出目标数组的首个元素之后,对所述目标数组中已被读取的元素进行删除操作。
在本实施例中,所述取值获取请求还用于指示在所述控制机读取出目标数组的首个元素之后,将所述目标数组中已被读取的元素移动至所述目标数组的末尾。
在本实施例中,所述目标数组由所述控制机从数据库中读取测试脚本文件,并将所述测试脚本文件以数组形式存储得到。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例只是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (10)
1.一种测试方法,其特征在于,应用于分布式的多个测试设备中的任一测试设备,所述方法包括:
加载测试脚本,其中,所述测试脚本被所述多个测试设备加载;
响应于与所述测试脚本相关的测试任务,获取目标变量的取值,其中,所述多个测试设备获取到的所述目标变量的取值不同;
基于本测试设备获取到的所述目标变量的取值,执行所述测试任务。
2.根据权利要求1所述的方法,其特征在于,所述获取目标变量的取值,包括:
向数据库发送针对所述目标变量的键值自增操作指令,其中,所述键值自增操作指令用于对目标键的值进行自增操作,并返回自增操作后所述目标键的值,所述目标键为在所述数据库中存储的用于标识所述目标变量的键;
接收所述数据库返回的自增操作后所述目标键的值,作为所述目标变量的取值。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
根据哈希算法,对所述测试脚本的文件路径进行计算,得到哈希值;
将所述哈希值与所述测试脚本的标识符进行组合,构成所述数据库中的键;
将所述键关联的值置为初始整数值。
4.根据权利要求1所述的方法,其特征在于,所述测试设备包括一个控制机和至少一个压力机,本测试设备为压力机;
所述获取目标变量的取值,包括:
向所述控制机发送针对所述目标变量的取值获取请求,其中,所述取值获取请求用于指示所述控制机读取出目标数组的首个元素,所述目标数组用于存储所述目标变量的至少一个取值;
接收所述控制机返回的所述目标数组的首个元素,作为所述目标变量的取值。
5.根据权利要求4所述的方法,其特征在于,所述取值获取请求还用于指示在所述控制机读取出目标数组的首个元素之后,对所述目标数组中已被读取的元素进行删除操作。
6.根据权利要求4所述的方法,其特征在于,所述取值获取请求还用于指示在所述控制机读取出目标数组的首个元素之后,将所述目标数组中已被读取的元素移动至所述目标数组的末尾。
7.根据权利要求4所述的方法,其特征在于,所述目标数组由所述控制机从数据库中读取测试脚本文件,并将所述测试脚本文件以数组形式存储得到。
8.一种测试装置,其特征在于,应用于分布式的多个测试设备中的任一测试设备,所述装置包括:
加载单元,用于加载测试脚本,其中,所述测试脚本被所述多个测试设备加载;
获取单元,用于响应于与所述测试脚本相关的测试任务,获取目标变量的取值,其中,所述多个测试设备获取到的所述目标变量的取值不同;
执行单元,用于基于本测试设备获取到的所述目标变量的取值,执行所述测试任务。
9.一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行权利要求1至7任一项所述的方法。
10.一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410181243.3A CN118093392A (zh) | 2024-02-18 | 2024-02-18 | 测试方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410181243.3A CN118093392A (zh) | 2024-02-18 | 2024-02-18 | 测试方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118093392A true CN118093392A (zh) | 2024-05-28 |
Family
ID=91150965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410181243.3A Pending CN118093392A (zh) | 2024-02-18 | 2024-02-18 | 测试方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118093392A (zh) |
-
2024
- 2024-02-18 CN CN202410181243.3A patent/CN118093392A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108897691B (zh) | 基于接口模拟服务的数据处理方法、装置、服务器和介质 | |
CN111625452B (zh) | 流量回放方法和系统 | |
CN110474820B (zh) | 流量回放方法、装置、电子设备 | |
CN109614270A (zh) | 基于Hbase的数据读写方法、装置、设备及存储介质 | |
CN114490375A (zh) | 应用程序的性能测试方法、装置、设备及存储介质 | |
CN111506580A (zh) | 一种基于中心化块链式账本的交易存储方法 | |
CN110362569A (zh) | 数据表的校验方法及装置、电子设备、存储介质 | |
CN113312259B (zh) | 一种接口测试方法及装置 | |
CN110888972A (zh) | 一种基于Spark Streaming的敏感内容识别方法及装置 | |
CN112860412B (zh) | 业务数据处理方法、装置、电子设备及存储介质 | |
CN107092556B (zh) | 测试方法、装置及设备 | |
CN110928941B (zh) | 一种数据分片抽取方法及装置 | |
CN115174158B (zh) | 基于多云管理平台的云产品配置检查方法 | |
CN110245166A (zh) | 数据核对方法及装置 | |
CN118093392A (zh) | 测试方法、装置、电子设备及存储介质 | |
CN115687129A (zh) | 一种覆盖率报告生成方法、装置、存储介质和计算机设备 | |
CN114691496A (zh) | 单元测试方法、装置、计算设备及介质 | |
CN113918638A (zh) | 数据处理链路确定方法、系统、设备及存储介质 | |
CN112699129A (zh) | 一种数据处理系统、方法及装置 | |
CN111680112B (zh) | 一种数据分析方法及装置 | |
CN109783331B (zh) | 数据库集群的压力测试方法和装置 | |
CN117389884A (zh) | 代码覆盖率计算方法及装置 | |
CN116821143A (zh) | 一种数据更新方法及装置 | |
CN117112424A (zh) | 测试用例的生成方法、装置、设备、介质和产品 | |
CN114201400A (zh) | 代码调试方法、装置、计算机可读存储介质及服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |