CN114968825A - 一种生成参数化查询测试用例的方法及装置 - Google Patents
一种生成参数化查询测试用例的方法及装置 Download PDFInfo
- Publication number
- CN114968825A CN114968825A CN202210894581.2A CN202210894581A CN114968825A CN 114968825 A CN114968825 A CN 114968825A CN 202210894581 A CN202210894581 A CN 202210894581A CN 114968825 A CN114968825 A CN 114968825A
- Authority
- CN
- China
- Prior art keywords
- parameter
- queried
- group
- data
- generating
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Abstract
本发明公开了一种生成参数化查询测试用例的方法及装置,属于业务测试领域。该方法包括:获取待查询数据;所述待查询数据包括至少一组参数名和所述参数名对应的参数值;按照预设规则随机选择所述待查询数据中的参数名进行组合,得到至少一组待查询参数组;根据所述待查询参数组生成对应的参数化查询测试用例。本发明中,实现了快速生成代码简洁、参数完备的自动化测试用例。
Description
技术领域
本发明实施例涉及业务测试技术领域,尤其涉及一种生成参数化查询测试用例的方法及装置。
背景技术
参数化查询测试用例是指对同一接口,通过传入不同参数,而无需重复编写需求请求达到测试不同参数组合输入时的接口表现的目的。
但现有的参数化查询测试用例的生成过程中存在参数传入的数组值是写死,如果被测系统参数有变化,则用例会出错;并且输入参数和预期结果都需要人工编写维护,从而导致用例编写及维护的成本过高。
发明内容
本发明实施例提供一种生成参数化查询测试用例的方法及装置,以解决现有的参数写死不便于修改以及用例编写及维护的成本过高问题。
为了解决上述技术问题,本发明是这样实现的:
第一方面,本发明实施例提供了一种生成参数化查询测试用例的方法,包括:
获取待查询数据;所述待查询数据包括至少一组参数名和所述参数名对应的参数值;
按照预设规则随机选择所述待查询数据中的参数名进行组合,得到至少一组待查询参数组;
根据所述待查询参数组生成对应的参数化查询测试用例。
可选的,还包括:
执行所述参数化查询测试用例,查询所述至少一个待查询参数组,得到查询结果;
将所述查询结果与预期结果进行比对,得到比对结果;所述预期结果根据所述参数名对应的参数值得到。
可选的,所述预设规则包括以下至少一项:以一个参数名为一个待查询数据组、随机选择两个参数名组合为一个待查询数据组和随机选择多个参数名组合为一个待查询数据组。
可选的,所述按照预设规则随机选择所述待查询数据中的参数名进行组合,包括:
调用Python自动组合功能进行随机组合,实现按照预设规则随机选择所述待查询数据中的参数名进行组合。
可选的,所述根据所述待查询参数组生成对应的参数化查询测试用例,包括:
调用pytest工具,根据所述待查询参数组生成对应的参数化查询测试用例。
第二方面,本发明实施例提供了一种生成参数化查询测试用例的装置,包括:
获取模块,用于获取待查询数据;所述待查询数据包括至少一组参数名和所述参数名对应的参数值;
组合模块,用于按照预设规则随机选择所述待查询数据中的参数名进行组合,得到至少一组待查询参数组;
生成模块,用于根据所述待查询参数组生成对应的参数化查询测试用例。
可选的,还包括:
执行模块,用于执行所述参数化查询测试用例,查询所述至少一个待查询参数组,得到查询结果;
比对模块,用于将所述查询结果与预期结果进行比对,得到比对结果;所述预期结果根据所述参数名对应的参数值得到。
可选的,所述预设规则包括以下至少一项:以一个参数名为一个待查询数据组、随机选择两个参数名组合为一个待查询数据组和随机选择多个参数名组合为一个待查询数据组。
可选的,所述按照预设规则随机选择所述待查询数据中的参数名进行组合,包括:
调用Python自动组合功能进行随机组合,实现按照预设规则随机选择所述待查询数据中的参数名进行组合。
第三方面,本发明实施例提供了一种电子设备,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面中任一项所述的生成参数化查询测试用例的方法中的步骤。
第四方面,本发明实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面中任一项所述的生成参数化查询测试用例的方法中的步骤。
在本发明实施例中,通过自动生成参数及预期结果快速生成大量自动化用例,并且自动生成无需写死、维护性好的输入和输出参数,使得执行效率高,减少人工成本。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例提供的一种生成参数化查询测试用例的方法的流程示意图;
图2为本发明实施例提供的一种生成参数化查询测试用例的方法的总体流程示意图;
图3为本发明实施例提供的一种生成参数化查询测试用例的装置的结构示意图;
图4为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,本发明实施例提供了一种生成参数化查询测试用例的方法,包括:
步骤11:获取待查询数据;所述待查询数据包括至少一组参数名和所述参数名对应的参数值;
步骤12:按照预设规则随机选择所述待查询数据中的参数名进行组合,得到至少一组待查询参数组;
步骤13:根据所述待查询参数组生成对应的参数化查询测试用例。
本发明实施例中,通过自动生成参数及预期结果快速生成大量自动化用例,并且自动生成无需写死、维护性好的输入和输出参数,使得执行效率高,减少人工成本。
本发明实施例中,在步骤11中,获取待查询数据,所述待查询数据可以通过随机查询或者构造一条数据,从所述数据中提取所述数据的详细参数名和所述参数名对应的参数值;例如:该数据为:"address":"测试数据详细地址";"city": "北京市";"district":"东城区";其中,前半部分"address"、"city"和"district"为参数名;对应的后半部分"测试数据详细地址"、北京市"和"东城区"为所述参数名对应的参数值;并将所述数据作为全局变量进行加密保存以便后续并发执行及对比校验结果。
在步骤12中,按照预设规则随机选择所述待查询数据中的参数名进行组合,得到至少一组待查询参数组;其中,通过调用Python自动组合功能进行随机组合,实现按照预设规则随机选择所述待查询数据中的参数名进行组合,得到至少一组待查询参数组;所述预设规则包括以下至少一项:以一个参数名为一个待查询数据组、随机选择两个参数名组合为一个待查询数据组和随机选择多个参数名组合为一个待查询数据组;例如:当前查询参数名按照两两组合,即参数字段名为(city,district);动态生成完备的查询组合参数,可作为遍历测试,全自动排列组合,无需人工参与,实现参数构造自动化。
在步骤13中,调用pytest工具,根据所述待查询参数组生成对应的参数化查询测试用例。
本发明实施例中,快速生成大量自动化用例,且能够动态自动生成便于维护的输入和输出参数;自动化用例结果校验参数多,有效性高;并且大量自动生成的自动化测试用例可以作为稳定的压测输入用例,减少压测数据构造成本。
本发明实施例中,可选的,还包括:
执行所述参数化查询测试用例,查询所述至少一个待查询参数组,得到查询结果;
将所述查询结果与预期结果进行比对,得到比对结果;所述预期结果根据所述参数名对应的参数值得到。
本发明实施例中,用例执行断言时,自动从全字段数据中根据当前查询参数组合查询出预期结果,用例预期结果自动生成,无需人工干预;查询过程例如:当查询参数为字段两两组合,参数字段名为(city,district);执行对应的参数化查询测试用例自动根据参数组合查询出预期结果,即对应的预期结果为("city": "北京市","district":"东城区");若执行后的查询结果符合预期结果则说明生成用例成功,若执行后的查询结果不符合预期结果则说明生成用例失败。
本发明实施例中,动态获取当前组合查询参数的预期结果;自动化用例可并发执行,执行效率高;并且大大提高代码简洁性。
请参考图2,本发明实施例中,构造一条数据或者查询一条数据;提取数据所有参数名;提取要查询的参数;即获取待查询数据;所述待查询数据包括至少一组参数名和所述参数名对应的参数值;其中构造一条数据或者查询一条数据后,将查询的数据作为全局变量保存;并给全局变量加锁保存;全排列组合生成查询参数组合,即按照预设规则随机选择所述待查询数据中的参数名进行组合,得到至少一组待查询参数组;传入所有参数组合给pytest参数化用例,即调用pytest工具,根据所述待查询参数组生成对应的参数化查询测试用例;参数化用例并发执行;单线程/进程通过当前参数组合和全局变量查询出预期结果,即执行所述参数化查询测试用例,查询所述至少一个待查询参数组,得到查询结果;将所述查询结果与预期结果进行比对,得到比对结果;所述预期结果根据所述参数名对应的参数值得到;参数化用例自动根据当前参数组合和查询出的预期结果生成断言语句。
本发明实施例中,通过自动生成参数及预期结果快速生成大量自动化用例,并且自动生成无需写死、维护性好的输入和输出参数,使得执行效率高,减少人工成本。
请参考图3,本发明实施例提供了一种生成参数化查询测试用例的装置,包括:
获取模块31,用于获取待查询数据;所述待查询数据包括至少一组参数名和所述参数名对应的参数值;
组合模块32,用于按照预设规则随机选择所述待查询数据中的参数名进行组合,得到至少一组待查询参数组;
生成模块33,用于根据所述待查询参数组生成对应的参数化查询测试用例。
本发明实施例中,可选的,还包括:
执行模块,用于执行所述参数化查询测试用例,查询所述至少一个待查询参数组,得到查询结果;
比对模块,用于将所述查询结果与预期结果进行比对,得到比对结果;所述预期结果根据所述参数名对应的参数值得到。
本发明实施例中,可选的,所述预设规则包括以下至少一项:以一个参数名为一个待查询数据组、随机选择两个参数名组合为一个待查询数据组和随机选择多个参数名组合为一个待查询数据组。
本发明实施例中,可选的,所述按照预设规则随机选择所述待查询数据中的参数名进行组合,包括:
调用Python自动组合功能进行随机组合,实现按照预设规则随机选择所述待查询数据中的参数名进行组合。
本申请实施例提供的生成参数化查询测试用例的装置能够实现图1中方法实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例提供了一种电子设备40,参见图4所示,图4为本发明实施例电子设备40的原理框图,包括处理器41,存储器42及存储在存储器42上并可在处理器41上运行的程序或指令,程序或指令被处理器执行时实现本发明的任一项生成参数化查询测试用例的方法中的步骤。
本发明实施例提供了一种可读存储介质,可读存储介质上存储程序或指令,程序或指令被处理器执行时实现如上述任一项的生成参数化查询测试用例的方法的实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述的可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
Claims (10)
1.一种生成参数化查询测试用例的方法,其特征在于,包括:
获取待查询数据;所述待查询数据包括至少一组参数名和所述参数名对应的参数值;
按照预设规则随机选择所述待查询数据中的参数名进行组合,得到至少一组待查询参数组;
根据所述待查询参数组生成对应的参数化查询测试用例。
2.根据权利要求1所述的生成参数化查询测试用例的方法,其特征在于,还包括:
执行所述参数化查询测试用例,查询所述至少一个待查询参数组,得到查询结果;
将所述查询结果与预期结果进行比对,得到比对结果;所述预期结果根据所述参数名对应的参数值得到。
3.根据权利要求1所述的生成参数化查询测试用例的方法,其特征在于,
所述预设规则包括以下至少一项:以一个参数名为一个待查询数据组、随机选择两个参数名组合为一个待查询数据组和随机选择多个参数名组合为一个待查询数据组。
4.根据权利要求1所述的生成参数化查询测试用例的方法,其特征在于,所述按照预设规则随机选择所述待查询数据中的参数名进行组合,包括:
调用Python自动组合功能进行随机组合,实现按照预设规则随机选择所述待查询数据中的参数名进行组合。
5.根据权利要求1所述的生成参数化查询测试用例的方法,其特征在于,所述根据所述待查询参数组生成对应的参数化查询测试用例,包括:
调用pytest工具,根据所述待查询参数组生成对应的参数化查询测试用例。
6.一种生成参数化查询测试用例的装置,其特征在于,包括:
获取模块,用于获取待查询数据;所述待查询数据包括至少一组参数名和所述参数名对应的参数值;
组合模块,用于按照预设规则随机选择所述待查询数据中的参数名进行组合,得到至少一组待查询参数组;
生成模块,用于根据所述待查询参数组生成对应的参数化查询测试用例。
7.根据权利要求6所述的生成参数化查询测试用例的装置,其特征在于,还包括:
执行模块,用于执行所述参数化查询测试用例,查询所述至少一个待查询参数组,得到查询结果;
比对模块,用于将所述查询结果与预期结果进行比对,得到比对结果;所述预期结果根据所述参数名对应的参数值得到。
8.根据权利要求6所述的生成参数化查询测试用例的装置,其特征在于,
所述预设规则包括以下至少一项:以一个参数名为一个待查询数据组、随机选择两个参数名组合为一个待查询数据组和随机选择多个参数名组合为一个待查询数据组。
9.一种电子设备,其特征在于:包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1至5中任一项所述的生成参数化查询测试用例的方法中的步骤。
10.一种可读存储介质,其特征在于:所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1至5中任一项所述的生成参数化查询测试用例的方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210894581.2A CN114968825A (zh) | 2022-07-28 | 2022-07-28 | 一种生成参数化查询测试用例的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210894581.2A CN114968825A (zh) | 2022-07-28 | 2022-07-28 | 一种生成参数化查询测试用例的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114968825A true CN114968825A (zh) | 2022-08-30 |
Family
ID=82968859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210894581.2A Withdrawn CN114968825A (zh) | 2022-07-28 | 2022-07-28 | 一种生成参数化查询测试用例的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114968825A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102855185A (zh) * | 2012-07-24 | 2013-01-02 | 河海大学 | 一种基于优先级的成对组合测试方法 |
CN107247670A (zh) * | 2017-06-08 | 2017-10-13 | 深圳易嘉恩科技有限公司 | 一种关于财务云平台的成对组合测试用例生成方法 |
CN114372006A (zh) * | 2022-01-14 | 2022-04-19 | 平安普惠企业管理有限公司 | 测试用例自动生成方法、系统、计算机设备和存储介质 |
-
2022
- 2022-07-28 CN CN202210894581.2A patent/CN114968825A/zh not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102855185A (zh) * | 2012-07-24 | 2013-01-02 | 河海大学 | 一种基于优先级的成对组合测试方法 |
CN107247670A (zh) * | 2017-06-08 | 2017-10-13 | 深圳易嘉恩科技有限公司 | 一种关于财务云平台的成对组合测试用例生成方法 |
CN114372006A (zh) * | 2022-01-14 | 2022-04-19 | 平安普惠企业管理有限公司 | 测试用例自动生成方法、系统、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230259509A1 (en) | Data association query method and apparatus, device, and storage medium | |
CN105677683A (zh) | 批量数据查询方法和装置 | |
CN108205577A (zh) | 一种数组构建、数组查询的方法、装置及电子设备 | |
CN111767227A (zh) | 一种录制回放测试的方法及装置 | |
CN105447035A (zh) | 数据扫描方法及装置 | |
CN111078573A (zh) | 一种测试报文的生成方法及装置 | |
CN110825533B (zh) | 一种数据发射方法及装置 | |
CN112395339B (zh) | 系统间数据准入校验方法、装置、计算机设备和存储介质 | |
CN114968825A (zh) | 一种生成参数化查询测试用例的方法及装置 | |
CN113836212B (zh) | 数据库数据自动生成Json数据的方法、可读介质和电子设备 | |
CN110597789A (zh) | 架构图自动生成方法、装置、设备及计算机可读存储介质 | |
CN111259062B (zh) | 一种能够保证分布式数据库全表查询语句结果集顺序的方法和装置 | |
WO2021004266A1 (zh) | 数据插入方法、装置、设备和储存介质 | |
CN115878448A (zh) | 数据库测试方法、分布式数据库、存储介质 | |
CN107861725B (zh) | 一种iOS数据反向自动解析策略 | |
CN117724986B (zh) | 一种在用例执行中自动操作kafka的方法及装置 | |
CN114528338B (zh) | 一种动态导出字段的方法、装置、设备及介质 | |
CN113965500B (zh) | 一种串口服务器端口占用管理方法、设备及介质 | |
CN111552561B (zh) | 一种任务处理方法及装置 | |
CN111240920B (zh) | 性能测试方法、装置、服务器及存储介质 | |
CN115587021A (zh) | 模拟测试报文生成方法及装置 | |
CN114185814A (zh) | 一种变量地址文件的生成方法和装置 | |
CN115878667A (zh) | 分布式数据库的数据处理方法、装置、服务器及存储介质 | |
CN117112424A (zh) | 测试用例的生成方法、装置、设备、介质和产品 | |
CN116663500A (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20220830 |
|
WW01 | Invention patent application withdrawn after publication |