CN111221735B - 一种用于自动生成业务交互测试脚本的系统 - Google Patents

一种用于自动生成业务交互测试脚本的系统 Download PDF

Info

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
Application number
CN202010017653.6A
Other languages
English (en)
Other versions
CN111221735A (zh
Inventor
黄琴
陈海量
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujian Boss Software Co ltd
Original Assignee
Fujian Boss Software Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujian Boss Software Co ltd filed Critical Fujian Boss Software Co ltd
Priority to CN202010017653.6A priority Critical patent/CN111221735B/zh
Publication of CN111221735A publication Critical patent/CN111221735A/zh
Application granted granted Critical
Publication of CN111221735B publication Critical patent/CN111221735B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test 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串,约束条件包括:数据类型、格式、长度、必填标识、默认值、描述信息等;
接口请求模型定义文件模板如下:
Figure BDA0002359509970000031
Figure BDA0002359509970000041
S4.读取接口响应参数标识,创建接口合法响应模型定义文件,文件名为:interface的值+_result;
S5.遍历响应参数列表,将列表中每个参数及其约束条件保存至接口合法响应模型定义文件中,存储格式为JSON串,约束条件包括:数据类型、格式、长度、必填标识、默认值、描述信息等。
接口合法响应模型定义文件模板如下:
Figure BDA0002359509970000042
Figure BDA0002359509970000051
接口模型类生成工具的工作步骤如下:
S1.获取接口请求模型定义文件的接口名,创建接口模型类文件,文件名为接口名:遍历接口请求模型定义文件,获取接口名并保存至缓存变量interface中,创建接口模型类文件,文件名为interface的值;
S2.在接口模型类文件中创建一个类,类名为接口名,即类名为interface的值;
S3.遍历接口请求模型定义文件的参数列表,读取每个参数的参数名及其约束条件,约束条件包括:数据类型、格式、长度、必填标识、默认值、描述信息;
S4.将参数名设置为模型类的成员变量名,参数的默认值作为成员变量的初始值;
self._参数1="参数1默认值"
self._参数2='参数2默认值'
S5.分别为每个成员变量创建一个修改变量值函数与获取变量值函数,这些函数都为模型类的成员函数。通过这些成员函数,使得使用者可以根据需要随时修改请求参数的值,以满足特定的测试场景;
Figure BDA0002359509970000052
S6.为模型类创建一个根据成员变量拼接接口请求体的成员函数,该成员函数可以使得每次请求接口时不用重新拼装请求体,减少测试脚本的代码量及维护测试数据的量。
Figure BDA0002359509970000061
生成后的模型类文件完整模板如下:
Figure BDA0002359509970000062
Figure BDA0002359509970000071
业务交互脚本生成工具的工作步骤如下:
S1.读取业务交互场景定义文件,获取接口名、待变更参数列表、接口描述信息,并将其存至缓存变量;
业务交互场景定义文件模板如下:
Figure BDA0002359509970000072
S2.创建接口测试文件,文件名为:test+业务交互场景定义文件名;
S3.读取业务交互场景定义文件,获取文件中所有接口的待变更参数列表,如果列表不为空,则通过接口模型类的修改变量值函数为列表中参数设置最新值;如果列表为空,则跳过这一步并使用接口请求模型定义文件中参数的默认值,也即接口模型类中成员变量的初始值;
#Python中,修改变量值函数可以直接通过变量名访问,其他语言可以通过其他方式实现访问:
Figure BDA0002359509970000081
S4.调用接口模型类中的获取请求体函数为请求接口拼接请求体;
S5.读取目标服务配置文件,获取目标服务器的IP及PORT信息,并根据IP、PORT、接口名、接口请求体为每个接口测试函数拼装出一个完整的接口请求,然后根据特定请求协议请求该接口;
S6.遍历读取接口合法响应模型定义文件,获取响应参数列表及其对应的约束条件,约束条件包括:数据类型、格式、长度及默认值;
S7.比对接口请求响应的实际值与接口合法响应模型定义文件中的预期值,对比内容包括响应参数的数据类型、格式、长度及默认值;如果一致则表示该接口测试函数测试通过;不一致则表示该接口测试函数测试失败。
将以上生成的接口测试函数都写入测试文件中。
工具实现的核心伪代码如下:
Figure BDA0002359509970000082
Figure BDA0002359509970000091
Figure BDA0002359509970000101

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. 为模型类创建一个根据成员变量拼接接口请求体的成员函数。
CN202010017653.6A 2020-01-08 2020-01-08 一种用于自动生成业务交互测试脚本的系统 Active CN111221735B (zh)

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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111898345A (zh) * 2020-07-24 2020-11-06 北京车和家信息技术有限公司 基于详细设计文档的数据处理方法和装置
CN112328503A (zh) * 2020-11-30 2021-02-05 武汉空心科技有限公司 一种软件开发工作平台任务验收方法
CN113760727A (zh) * 2021-01-19 2021-12-07 北京沃东天骏信息技术有限公司 一种接口回归测试方法和装置
CN113282499B (zh) * 2021-05-31 2024-02-09 长沙市到家悠享家政服务有限公司 创建测试数据的方法、系统、设备及介质
CN115629990B (zh) * 2022-11-15 2023-04-07 四川无限智达科技有限公司 业务测试方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 平安科技(深圳)有限公司 系统测试方法、装置、计算机设备和存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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) 一种用于自动生成业务交互测试脚本的系统
CN101122899B (zh) 报表的生成方法和设备
CN110333863B (zh) 一种生成、显示小程序页面的方法及装置
CN110442822A (zh) 一种小程序内容展示方法、装置、设备及存储介质
CN101499057A (zh) 电子文档生成系统及方法
CN111258884B (zh) 一种用于自动生成接口准确性校验脚本的系统
US8695006B2 (en) Resource management method
CN110276074B (zh) 自然语言处理的分布式训练方法、装置、设备及存储介质
CN110275861A (zh) 数据存储方法及装置、存储介质、电子装置
CN111158687B (zh) Java插件的界面生成方法、装置、计算机设备和存储介质
CN111400246B (zh) 异步导入文件方法、装置、计算机设备和存储介质
CN112463261B (zh) 接口调用方法、装置、电子设备、介质及产品
CN102929646A (zh) 应用程序生成方法及装置
CN110888634B (zh) 游戏落地页生成方法、装置、计算机设备和存储介质
CN112241625A (zh) 一种基于java语言的合同文档自动生成方法及系统
CN113779953A (zh) 一种文档自动化生成方法和系统
CN113268232B (zh) 一种页面皮肤生成方法、装置和计算机可读存储介质
CN116400914A (zh) 一种基于数据模型快速构建web应用的方法
CN116661759A (zh) 页面自动生成方法、系统及存储介质
CN111506594A (zh) 一种大数据查询平台及其管理方法和数据查询方法
CN115588206A (zh) 一种基于数据管理的自动模板文字识别实现系统及方法
CN115599361A (zh) 一种软件的开发方法、装置、设备及介质
CN114115856A (zh) 代码复用方法、装置、存储介质及计算机设备
US5974251A (en) Media flow control system
CN112764732B (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