CN111221735B - 一种用于自动生成业务交互测试脚本的*** - Google Patents
一种用于自动生成业务交互测试脚本的*** Download PDFInfo
- Publication number
- CN111221735B CN111221735B CN202010017653.6A CN202010017653A CN111221735B CN 111221735 B CN111221735 B CN 111221735B CN 202010017653 A CN202010017653 A CN 202010017653A CN 111221735 B CN111221735 B CN 111221735B
- Authority
- CN
- China
- Prior art keywords
- interface
- definition file
- file
- request
- model
- 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.)
- Active
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种用于自动生成业务交互测试脚本的***,它包括以下模块:输入模块,其设有接口文档、服务器配置文件以及业务交互场景定义文件;工具模块,其设有接口定义文件生成工具、接口模型类生成工具以及业务交互脚本生成工具;输出模块,其设有接口定义文件、接口模型类以及接口测试文件。本发明的目的在于提供一种用于自动生成业务交互测试脚本的***。本发明的优点在于:1.本测试***可以根据接口文档及业务交互场景定义文件快速生成测试脚本,而减少人工编写脚本的成本;同时可以快速跟进项目,降低由于测试过程耗时过长导致项目延期的风险。2.本测试方案可以覆盖接口与接口间所有的交互场景,避免该测试范围内的漏测。
Description
技术领域
本发明涉及接口自动化测试,特别是一种用于自动生成业务交互测试脚本的***。
背景技术
当前市场上针对接口间交互测试的一般做法是人工对照一个个接口文档,并手动在测试函数中拼装所有接口的请求信息,接着发送请求,然后对比响应结果;当出现接口间存在多种多种交互场景时,就需要手动创建多个测试函数,使得需要维护的代码量非常庞大,最终增加了测试成本。
发明内容
本发明的目的在于提供一种用于自动生成业务交互测试脚本的***。
本发明的目的通过如下技术方案实现:一种用于自动生成业务交互测试脚本的***,它包括以下模块:输入模块,其设有接口文档、服务器配置文件以及业务交互场景定义文件;工具模块,其设有接口定义文件生成工具、接口模型类生成工具以及业务交互脚本生成工具;输出模块,其设有接口定义文件、接口模型类以及接口测试文件;所述接口定义文件生成工具通过接口文档中定义的接口约束条件将接口的请求参数列表和响应参数列表自动转换成以JSON形式存储的接口请求模型定义文件和接口合法响应模型定义文件,并储存至接口定义文件;接口模型类生成工具以接口请求模型定义文件作为输入,生成接口模型类,接口模型类为每个接口请求模型定义文件中的参数创建一个修改变量值函数与获取变量值函数,并生成获取请求体函数;业务交互脚本生成工具以业务交互场景定义文件、服务器配置文件、接口合法响应模型定义文件作为输入,生成接口测试文件,测试文件中设有测试函数,测试函数会根据业务交互场景定义文件中所有接口中待变更参数列表自动调用接口模型类的修改变量值函数去修改请求参数的使用值,然后调用获取变量值函数更新接口的JSON形式的请求体,接着根据服务器配置文件拼接请求URL,并发送接口请求;最后对比接口响应的实际值与预期值。
较之现有技术而言,本发明的优点在于:
1.本测试***可以根据接口文档及业务交互场景定义文件快速生成测试脚本,而减少人工编写脚本的成本;同时可以快速跟进项目,降低由于测试过程耗时过长导致项目延期的风险。
2.本测试方案可以覆盖接口与接口间所有的交互场景,避免该测试范围内的漏测。
3.本测试方案只需维护接口文档、业务交互场景定义文件、被测服务配置文件,不需要维护大量的测试数据及测试脚本,从而解放人力成本。
附图说明
图1是本发明的总流程图。
图2是接口定义文件生成工具的工作流程图。
图3是接口模型类生成工具的工作流程图。
图4是业务交互脚本生成工具的工作流程图。
具体实施方式
下面结合说明书附图和实施例对本发明内容进行详细说明:
如图1和4所示为本发明提供的一种用于自动生成业务交互测试脚本的***的实施例示意图。
本发明可覆盖的接口协议包括:HTTP/HTTPS/SOCKET,本发明可以覆盖的测试场景包括:接口与接口间业务交互流程的测试场景。
一种用于自动生成业务交互测试脚本的***,它包括以下模块:
输入模块,其设有接口文档、服务器配置文件以及业务交互场景定义文件;
工具模块,其设有接口定义文件生成工具、接口模型类生成工具以及业务交互脚本生成工具;
输出模块,其设有接口定义文件、接口模型类以及接口测试文件;
所述接口定义文件生成工具通过接口文档中定义的接口约束条件将接口的请求参数列表和响应参数列表自动转换成以JSON形式存储的接口请求模型定义文件和接口合法响应模型定义文件,并储存至接口定义文件;
接口模型类生成工具以接口请求模型定义文件作为输入,生成接口模型类,接口模型类为每个接口请求模型定义文件中的参数创建一个修改变量值函数与获取变量值函数,并生成获取请求体函数;
业务交互脚本生成工具以业务交互场景定义文件、服务器配置文件、接口合法响应模型定义文件作为输入,生成接口测试文件(测试文件的命名格式一般为:test+场景定义文件名),测试文件中设有测试函数,测试函数会根据业务交互场景定义文件中所有接口中待变更参数列表自动调用接口模型类的修改变量值函数去修改请求参数的使用值,然后调用获取变量值函数更新接口的JSON形式的请求体,接着根据服务器配置文件拼接请求URL,并发送接口请求;最后对比接口响应的实际值与预期值。
所述业务交互场景定义文件中存储一个或多个目标测试接口;
服务器配置文件存储有被测服务器的IP及PORT;
接口合法响应模型定义文件存储有接口正确响应的预期参数列表及其参数约束条件。每个参数都包含数据类型、长度、格式、是否必填等约束条件。
接口定义文件生成工具的工作步骤如下:
S1.读取接口文档,获取接口名:遍历接口文档中每个接口的接口名,并将接口名保存至缓存变量interface中;
S2.读取接口请求参数标识,创建接口请求模型定义文件,文件名为:interface的值;
S3.遍历请求参数列表,将列表中每个参数及其约束条件保存至接口请求模型定义文件中,存储格式为JSON串,约束条件包括:数据类型、格式、长度、必填标识、默认值、描述信息等;
接口请求模型定义文件模板如下:
S4.读取接口响应参数标识,创建接口合法响应模型定义文件,文件名为:interface的值+_result;
S5.遍历响应参数列表,将列表中每个参数及其约束条件保存至接口合法响应模型定义文件中,存储格式为JSON串,约束条件包括:数据类型、格式、长度、必填标识、默认值、描述信息等。
接口合法响应模型定义文件模板如下:
接口模型类生成工具的工作步骤如下:
S1.获取接口请求模型定义文件的接口名,创建接口模型类文件,文件名为接口名:遍历接口请求模型定义文件,获取接口名并保存至缓存变量interface中,创建接口模型类文件,文件名为interface的值;
S2.在接口模型类文件中创建一个类,类名为接口名,即类名为interface的值;
S3.遍历接口请求模型定义文件的参数列表,读取每个参数的参数名及其约束条件,约束条件包括:数据类型、格式、长度、必填标识、默认值、描述信息;
S4.将参数名设置为模型类的成员变量名,参数的默认值作为成员变量的初始值;
self._参数1="参数1默认值"
self._参数2='参数2默认值'
S5.分别为每个成员变量创建一个修改变量值函数与获取变量值函数,这些函数都为模型类的成员函数。通过这些成员函数,使得使用者可以根据需要随时修改请求参数的值,以满足特定的测试场景;
S6.为模型类创建一个根据成员变量拼接接口请求体的成员函数,该成员函数可以使得每次请求接口时不用重新拼装请求体,减少测试脚本的代码量及维护测试数据的量。
生成后的模型类文件完整模板如下:
业务交互脚本生成工具的工作步骤如下:
S1.读取业务交互场景定义文件,获取接口名、待变更参数列表、接口描述信息,并将其存至缓存变量;
业务交互场景定义文件模板如下:
S2.创建接口测试文件,文件名为:test+业务交互场景定义文件名;
S3.读取业务交互场景定义文件,获取文件中所有接口的待变更参数列表,如果列表不为空,则通过接口模型类的修改变量值函数为列表中参数设置最新值;如果列表为空,则跳过这一步并使用接口请求模型定义文件中参数的默认值,也即接口模型类中成员变量的初始值;
#Python中,修改变量值函数可以直接通过变量名访问,其他语言可以通过其他方式实现访问:
S4.调用接口模型类中的获取请求体函数为请求接口拼接请求体;
S5.读取目标服务配置文件,获取目标服务器的IP及PORT信息,并根据IP、PORT、接口名、接口请求体为每个接口测试函数拼装出一个完整的接口请求,然后根据特定请求协议请求该接口;
S6.遍历读取接口合法响应模型定义文件,获取响应参数列表及其对应的约束条件,约束条件包括:数据类型、格式、长度及默认值;
S7.比对接口请求响应的实际值与接口合法响应模型定义文件中的预期值,对比内容包括响应参数的数据类型、格式、长度及默认值;如果一致则表示该接口测试函数测试通过;不一致则表示该接口测试函数测试失败。
将以上生成的接口测试函数都写入测试文件中。
工具实现的核心伪代码如下:
Claims (3)
1.一种用于自动生成业务交互测试脚本的***,其特征在于,它包括以下模块:
输入模块,其设有接口文档、服务器配置文件以及业务交互场景定义文件;
工具模块,其设有接口定义文件生成工具、接口模型类生成工具以及业务交互脚本生成工具;
输出模块,其设有接口定义文件、接口模型类以及接口测试文件;
所述接口定义文件生成工具通过接口文档中定义的接口约束条件将接口的请求参数列表和响应参数列表自动转换成以JSON形式存储的接口请求模型定义文件和接口合法响应模型定义文件,并储存至接口定义文件;
接口模型类生成工具以接口请求模型定义文件作为输入,生成接口模型类,接口模型类为每个接口请求模型定义文件中的参数创建一个修改变量值函数与获取变量值函数,并生成获取请求体函数;
业务交互脚本生成工具以业务交互场景定义文件、服务器配置文件、接口合法响应模型定义文件作为输入,生成接口测试文件,测试文件中设有测试函数,测试函数会根据业务交互场景定义文件中所有接口中待变更参数列表自动调用接口模型类的修改变量值函数去修改请求参数的使用值,然后调用获取变量值函数更新接口的JSON形式的请求体,接着根据服务器配置文件拼接请求URL,并发送接口请求;最后对比接口响应的实际值与预期值;
所述业务交互场景定义文件中存储一个或多个目标测试接口;
服务器配置文件存储有被测服务器的IP及PORT;
接口合法响应模型定义文件存储有接口正确响应的预期参数列表及其参数约束条件;
业务交互脚本生成工具的工作步骤如下:
S1. 读取业务交互场景定义文件,获取接口名、待变更参数列表、接口描述信息;
S2. 创建接口测试文件;
S3. 读取业务交互场景定义文件,获取文件中所有接口的待变更参数列表,如果列表不为空,则通过接口模型类的修改变量值函数为列表中参数设置最新值;如果列表为空,则跳过这一步并使用接口请求模型定义文件中参数的默认值;
S4.调用接口模型类中的获取请求体函数为请求接口拼接请求体;
S5. 读取目标服务配置文件,获取目标服务器的IP及PORT信息,并根据IP 、PORT、接口名、接口请求体为每个接口测试函数拼装出一个完整的接口请求,然后根据特定请求协议请求该接口;
S6. 遍历读取接口合法响应模型定义文件,获取响应参数列表及其对应的约束条件;
S7. 比对接口请求响应的实际值与接口合法响应模型定义文件中的预期值,将以上生成的接口测试函数都写入接口测试文件中。
2.根据权利要求1所述的一种用于自动生成业务交互测试脚本的***,其特征在于:接口定义文件生成工具的工作步骤如下:
S1. 读取接口文档,获取接口名;
S2. 读取接口请求参数标识,创建接口请求模型定义文件;
S3. 遍历请求参数列表,将参数及其约束条件保存至接口请求模型定义文件,存储格式为JSON串;
S4. 读取接口响应参数标识,创建接口合法响应模型定义文件;
S5. 遍历响应参数列表,将参数及其约束条件保存至接口合法响应模型定义文件,存储格式为JSON串。
3.根据权利要求2所述的一种用于自动生成业务交互测试脚本的***,其特征在于:接口模型类生成工具的工作步骤如下:
S1. 获取接口请求模型定义文件的接口名,创建接口模型类文件,文件名为接口名;
S2. 在接口模型类文件中创建一个类,类名为接口名;
S3. 遍历接口请求模型定义文件的参数列表,读取参数名及其约束条件;
S4. 将参数名设置为模型类的成员变量名,参数的默认值作为成员变量的初始值;
S5. 分别为每个成员变量创建一个修改变量值函数与获取变量值函数;
S6. 为模型类创建一个根据成员变量拼接接口请求体的成员函数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010017653.6A CN111221735B (zh) | 2020-01-08 | 2020-01-08 | 一种用于自动生成业务交互测试脚本的*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010017653.6A CN111221735B (zh) | 2020-01-08 | 2020-01-08 | 一种用于自动生成业务交互测试脚本的*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111221735A CN111221735A (zh) | 2020-06-02 |
CN111221735B true CN111221735B (zh) | 2022-08-09 |
Family
ID=70828175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010017653.6A Active CN111221735B (zh) | 2020-01-08 | 2020-01-08 | 一种用于自动生成业务交互测试脚本的*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111221735B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111898345A (zh) * | 2020-07-24 | 2020-11-06 | 北京车和家信息技术有限公司 | 基于详细设计文档的数据处理方法和装置 |
CN112328503A (zh) * | 2020-11-30 | 2021-02-05 | 武汉空心科技有限公司 | 一种软件开发工作平台任务验收方法 |
CN113282499B (zh) * | 2021-05-31 | 2024-02-09 | 长沙市到家悠享家政服务有限公司 | 创建测试数据的方法、***、设备及介质 |
CN115629990B (zh) * | 2022-11-15 | 2023-04-07 | 四川无限智达科技有限公司 | 业务测试方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101212357A (zh) * | 2006-12-31 | 2008-07-02 | 亿阳信通股份有限公司 | 一种接口的测试方法和装置 |
CN103186466A (zh) * | 2011-12-31 | 2013-07-03 | ***股份有限公司 | 基于关联测试用例自动生成的信息交互测试装置及方法 |
CN110427331A (zh) * | 2019-09-03 | 2019-11-08 | 四川长虹电器股份有限公司 | 基于接口测试工具自动生成性能测试脚本的方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170052884A1 (en) * | 2015-08-20 | 2017-02-23 | Ca, Inc. | Generic test automation for restful web services applications |
CN109189684B (zh) * | 2018-08-28 | 2022-02-22 | 四川长虹电器股份有限公司 | 基于Python的接口自动化测试方法 |
CN110399293B (zh) * | 2019-06-21 | 2024-05-03 | 平安科技(深圳)有限公司 | ***测试方法、装置、计算机设备和存储介质 |
-
2020
- 2020-01-08 CN CN202010017653.6A patent/CN111221735B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101212357A (zh) * | 2006-12-31 | 2008-07-02 | 亿阳信通股份有限公司 | 一种接口的测试方法和装置 |
CN103186466A (zh) * | 2011-12-31 | 2013-07-03 | ***股份有限公司 | 基于关联测试用例自动生成的信息交互测试装置及方法 |
CN110427331A (zh) * | 2019-09-03 | 2019-11-08 | 四川长虹电器股份有限公司 | 基于接口测试工具自动生成性能测试脚本的方法 |
Non-Patent Citations (1)
Title |
---|
服务接口测试自动化工具的研究;卓欣欣等;《计算机研究与发展》;20180515;第55卷(第2期);第358-376页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111221735A (zh) | 2020-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111221735B (zh) | 一种用于自动生成业务交互测试脚本的*** | |
CN107608889B (zh) | 一种测试脚本自动生成方法及*** | |
CN110333863B (zh) | 一种生成、显示小程序页面的方法及装置 | |
CN110442822A (zh) | 一种小程序内容展示方法、装置、设备及存储介质 | |
CN101499057A (zh) | 电子文档生成***及方法 | |
CN111258884B (zh) | 一种用于自动生成接口准确性校验脚本的*** | |
CN101122899A (zh) | 报表的生成方法和设备 | |
CN111767704B (zh) | Excel表格模板生成方法及装置 | |
CN110276074B (zh) | 自然语言处理的分布式训练方法、装置、设备及存储介质 | |
CN110275861A (zh) | 数据存储方法及装置、存储介质、电子装置 | |
CN111158687B (zh) | Java插件的界面生成方法、装置、计算机设备和存储介质 | |
CN111400246B (zh) | 异步导入文件方法、装置、计算机设备和存储介质 | |
CN110474836A (zh) | 一种邮件模板生成方法、装置、计算设备和介质 | |
CN102929646A (zh) | 应用程序生成方法及装置 | |
CN110888634B (zh) | 游戏落地页生成方法、装置、计算机设备和存储介质 | |
CN115729938A (zh) | 一种基于DataX的数据快速上传引擎实现方法 | |
CN112463261B (zh) | 接口调用方法、装置、电子设备、介质及产品 | |
CN113268232B (zh) | 一种页面皮肤生成方法、装置和计算机可读存储介质 | |
CN112241625A (zh) | 一种基于java语言的合同文档自动生成方法及*** | |
CN116400914A (zh) | 一种基于数据模型快速构建web应用的方法 | |
CN116661759A (zh) | 页面自动生成方法、***及存储介质 | |
CN111506594A (zh) | 一种大数据查询平台及其管理方法和数据查询方法 | |
CN115599361A (zh) | 一种软件的开发方法、装置、设备及介质 | |
CN113779953A (zh) | 一种文档自动化生成方法和*** | |
CN114115856A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |