CN115391231B - 一种接口自动化测试方法 - Google Patents

一种接口自动化测试方法 Download PDF

Info

Publication number
CN115391231B
CN115391231B CN202211316661.6A CN202211316661A CN115391231B CN 115391231 B CN115391231 B CN 115391231B CN 202211316661 A CN202211316661 A CN 202211316661A CN 115391231 B CN115391231 B CN 115391231B
Authority
CN
China
Prior art keywords
test
interface
item
requirement
test item
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
CN202211316661.6A
Other languages
English (en)
Other versions
CN115391231A (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.)
Jiangsu Beigong Intelligent Technology Co ltd
Original Assignee
Jiangsu Beigong Intelligent Technology 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 Jiangsu Beigong Intelligent Technology Co ltd filed Critical Jiangsu Beigong Intelligent Technology Co ltd
Priority to CN202211316661.6A priority Critical patent/CN115391231B/zh
Publication of CN115391231A publication Critical patent/CN115391231A/zh
Application granted granted Critical
Publication of CN115391231B publication Critical patent/CN115391231B/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
    • 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/3688Test management for test execution, e.g. scheduling of test suites
    • 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/3692Test management for test results analysis

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)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种接口自动化测试方法,步骤包括:构建接口测试脚本库以及测试项对应表;生成各个测试要求的测试模式;实时获取用户针对待测试接口的测试请求;确定出待测试接口的各个测试项,再选出各个自动化测试脚本;运行自动化测试脚本对待测试接口进行自动化测试;在各项自动化测试完成后向用户发送全部测试结果。该接口自动化测试方法通过构建接口测试脚本库能够在测试时快速找出对应的自动化测试脚本,便于实现自动化测试,也能够提高测试效率;通过选定相应的测试模式来进行不同模式的接口测试,满足接口测试的可定制化要求,增强接口测试的灵活性。

Description

一种接口自动化测试方法
技术领域
本发明涉及一种接口测试方法,尤其是一种接口自动化测试方法。
背景技术
目前,在新的接口开发完成之后,需要由接口测试人员进行人工测试,从而可以在程序部署早期及时发现问题,减少程序部署好之后再进行手工测试所花费的时间,从而加快版本迭代。接口测试时需要根据各个测试要求选定相应的测试项,例如对于接口名称为网络数据接口的测试要求包括通信速率测试、通信安全测试、通信时延测试等测试要求,其中通信速率测试又包括上传速率测试、下载速率测试、并行速率测试等测试项。但是现有技术的人工测试方法需要耗费大量的人力和时间成本,难以满足批量接口的快速测试需要。因此有必要设计出一种接口自动化测试方法,能够在接口开发完成后进行快速测试,减少人工参与,提高接口测试效率。
发明内容
发明目的:提供一种接口自动化测试方法,能够在接口开发完成后进行快速测试,减少人工参与,提高接口测试效率。
技术方案:本发明所述的接口自动化测试方法,包括如下步骤:
步骤1,根据各类接口的历史测试数据构建一个存储有各类接口的自动化测试脚本的接口测试脚本库以及一个对接口名称、测试要求以及测试项进行对应统计的测试项对应表;
步骤2,根据测试项对应表生成各个测试要求的测试模式,包括全面测试模式、默认测试模式以及基础测试模式;
步骤3,实时获取用户针对待测试接口的测试请求,测试请求包括用户选定的测试要求以及测试模式;
步骤4,根据测试要求以及测试模式确定出待测试接口的各个测试项,再从接口测试脚本库中选出各个测试项对应的自动化测试脚本;
步骤5,运行选出的各个自动化测试脚本对待测试接口依次进行各项自动化测试;
步骤6,在各项自动化测试完成后向用户发送全部测试结果。
进一步的,步骤1中,构建接口测试脚本库以及测试项对应表的具体步骤为:
步骤1.1,获取各类接口的历史测试数据,并从历史测试数据中获得各类接口的全部测试要求、每个测试要求对应的各个测试项、每个测试项的测试参数配置信息以及每个测试项的测试流程信息;
步骤1.2,根据每个测试项的测试参数配置信息以及测试流程信息生成各个测试项对应的自动化测试脚本,用于在运行时对待测试接口的各个测试项进行自动化测试;
步骤1.3,将生成的各个自动化测试脚本存储在接口测试脚本库中,并将各个测试项的项目名称作为接口测试脚本库中各个自动化测试脚本的脚本索引,用于从脚本库中快速选择各个测试项对应的自动化测试脚本;
步骤1.4,从历史测试数据中筛选出各个接口名称,再将各个不同的接口名称写入测试项对应表的第一列;
步骤1.5,将相同接口名称对应的各个测试要求合并为一个测试要求组,并在测试要求组内按照各个测试要求名称分成对应的测试要求分组,同一测试要求分组内各个测试要求名称相同并在测试要求名称后标记有对应的测试日期,再将各个测试要求组按照第一列的各个接口名称对应写入测试项对应表的第二列;
步骤1.6,将相同测试要求对应的各个测试项合并为一个测试项组,并在测试项组内按照各个测试项名称分成对应的测试项分组,同一测试项分组内各个测试项名称相同并在测试项目名称后标记有对应的测试日期,再将各个测试项组按照第二列的各个测试要求分组对应写入测试项对应表的第三列。
进一步的,步骤1.2中,生成各个测试项对应的自动化测试脚本的具体步骤为:
步骤1.2.1,根据各个测试项的测试参数配置信息生成对应的config文件,并在config文件中设置各个测试用例py文件的存储路径以及report文件的存储路径;
步骤1.2.2,由用户根据各个测试项定制对应的测试用例py文件,用于在启动运行时通过测试用例对待测试接口的对应测试项进行测试;
步骤1.2.3,利用各个config文件分别对各个测试用例py文件进行参数配置,再根据各个测试项的测试流程信息设置各个测试用例py文件在自动化测试脚本中的启动顺序。
进一步的,步骤2中,根据测试项对应表生成各个测试要求的测试模式的具体步骤为:
步骤2.1,对测试项对应表中的各个测试要求以及各个测试项进行统计,获得相同测试要求下各个测试项的被选中概率;
步骤2.2,根据各个测试项的被选中概率对各个测试项进行划分,将被选中概率≥90%的测试项划分为基础测试项,将被选中概率≥60%的测试项划分为默认测试项,将被选中概率≥30%的测试项划分为全面测试项;
步骤2.3,将全面测试项作为全面测试模式下的各个测试项,将默认测试项作为默认测试模式下的各个测试项,将基础测试项作为基础测试模式下的各个测试项。
进一步的,步骤2中,测试模式还包括自定义测试模式;自定义测试模式允许选择测试项对应表中各个测试要求对应的全部测试项,其中与默认测试项相同的各个测试项被默认选定,其余测试项默认未选定,且默认选定以及默认未选定的测试项均允许被改选。
进一步的,步骤2.1中,获得相同测试要求下各个测试项被选中的概率的具体步骤为:
步骤2.1.1,统计测试项对应表中每个测试要求分组内的测试要求名称数量为M i
步骤2.1.2,统计测试项对应表中每个测试项分组内各个测试项名称的被选中次数,若测试项分组内有多个测试日期相同的测试项名称,则对测试日期相同的测试项名称数量进行加权计算,最终得到的测试项名称数量为:
N j =a j +b j +c j ×0.2+d j ×0.1
式中,a j 为当前测试项分组内没有相同测试日期的测试项名称数量,b j 为当前测试项分组内有相同测试日期的测试项名称数量,c j 为当前测试项分组内有两个以上相同测试日期的测试项名称数量,d j 为当前测试项分组内有三个以上相同测试日期的测试项名称数量;
步骤2.1.3,利用当前测试项名称数量N j 除以对应测试要求分组内测试要求名称数量M i 得到当前测试项的被选中概率P l
进一步的,步骤3,实时获取用户针对待测试接口的测试请求的具体步骤:
步骤3.1,实时获取用户发送的请求信息,并对各个请求信息进行缓存;
步骤3.2,依次读取缓存的各个请求信息,并根据接口名称判断请求信息是否为针对待测试接口的测试请求,若为待测试接口的测试请求,则进入步骤3.2,否则返回步骤3.1;
步骤3.3,从测试请求中解析出用户设置的测试要求以及测试模式,并将解析出的测试要求在测试项对应表中的测试要求组进行名称匹配,若存在相同测试要求的名称,则认定为测试要求匹配成功,并进入步骤4,否则认定为测试要求匹配失败,并向用户反馈测试要求名称匹配失败信息,再进入步骤3.4;
步骤3.4,在设定时间内实时接收用户的新增测试信息,若接收到用户的新增测试信息,则根据新增测试信息获取用户从测试项对应表的测试项组中选择的各个测试项,否则向用户反馈测试要求匹配失败信息,再返回步骤3.1。
进一步的,步骤4中,根据测试要求以及测试模式确定出待测试接口的各个测试项的具体步骤:
步骤4.1,根据测试要求从测试项对应表中确定出测试要求分组,再根据确定出的测试要求分组找到对应的测试项组;
步骤4.2,根据测试模式从找到的测试项组中选出相应的测试项分组,每个测试项分组分别对应一个测试项。
进一步的,步骤5中,运行选出的各个自动化测试脚本对待测试接口依次进行各项自动化测试的具体步骤:
步骤5.1,按照测试流程信息首先通过get请求或post请求获取待测试接口的接口参数,对待测试接口的接口参数与选出的各个自动化测试脚本的测试参数配置信息进行参数匹配,若其中的接口名称以及接口位置均成功匹配,再则进入步骤5.2,否则退出接口测试步骤,并向用户反馈待测试接口的接口参数匹配失败信息;
步骤5.2,从选出的各个自动化测试脚本中选择一个未运行过的作为当前测试脚本,根据config文件中的存储路径找出当前测试脚本对应的各个测试用例py文件,再对待测试接口运行找出的各个测试用例py文件,从而运行对应的测试用例对待测试接口进行测试获得report文件;
步骤5.3,根据config文件中的存储路径对获得的report文件进行存储,并对report文件进行文件编号;
步骤5.4,判断是否全部自动化测试脚本均运行完毕,若全部运行完毕,则进入步骤6,否则返回步骤5.2。
进一步的,步骤6中,在各项自动化测试完成后向用户发送全部测试结果的具体步骤:
步骤6.1,对按照文件编号对存储的各个report文件进行分析,生成待测试接口的测试结果allure报告;
步骤6.2,获取当前待测试接口预设的结果接收邮箱,并向结果接收邮箱发送测试结果allure报告。
本发明与现有技术相比,其有益效果是:通过构建接口测试脚本库能够在测试时快速找出对应的自动化测试脚本,便于实现自动化测试,也能够提高测试效率;通过构建测试项对应表能够对历史测试数据进行统计分析,从而快速计算出各个测试项的被选中概率,为测试模式的划分提供依据;通过选定相应的测试模式来进行不同模式的接口测试,满足接口测试的可定制化要求,增强接口测试的灵活性;通过选出的各个自动化测试脚本对待测试接口进行自动化测试,能够满足接口的自动化测试要求,提高接口测试效率。
附图说明
图1为本发明的测试方法流程图;
图2为本发明的测试项对应表示意图。
具体实施方式
下面结合附图对本发明技术方案进行详细说明,但是本发明的保护范围不局限于所述实施例。
实施例1:
如图1所示,本发明公开的接口自动化测试方法包括如下步骤:
步骤1,根据各类接口的历史测试数据构建一个存储有各类接口的自动化测试脚本的接口测试脚本库以及一个对接口名称、测试要求以及测试项进行对应统计的测试项对应表;
步骤2,根据测试项对应表生成各个测试要求的测试模式,包括全面测试模式、默认测试模式以及基础测试模式;
步骤3,实时获取用户针对待测试接口的测试请求,测试请求包括用户选定的测试要求以及测试模式;
步骤4,根据测试要求以及测试模式确定出待测试接口的各个测试项,再根据脚本索引从接口测试脚本库中选出各个测试项对应的自动化测试脚本;
步骤5,运行选出的各个自动化测试脚本对待测试接口依次进行各项自动化测试;
步骤6,在各项自动化测试完成后向用户发送全部测试结果。
通过构建接口测试脚本库能够在测试时快速找出对应的自动化测试脚本,便于实现自动化测试,也能够提高测试效率;通过构建测试项对应表能够对历史测试数据进行统计分析,从而快速计算出各个测试项的被选中概率,为测试模式的划分提供依据;通过选定相应的测试模式来进行不同模式的接口测试,满足接口测试的可定制化要求,增强接口测试的灵活性;通过选出的各个自动化测试脚本对待测试接口进行自动化测试,能够满足接口的自动化测试要求,提高接口测试效率。
进一步的,步骤1中,构建接口测试脚本库以及测试项对应表的具体步骤为:
步骤1.1,获取各类接口的历史测试数据,可以是全部历史测试数据,也可以选择近半年或一年的测试数据,并从历史测试数据中获得各类接口的全部测试要求、每个测试要求对应的各个测试项、每个测试项的测试参数配置信息以及每个测试项的测试流程信息,由历史测试数据中获取的各项参数具有更为可靠的测试依据,也更符合接口测试的准确定制化要求;
步骤1.2,根据每个测试项的测试参数配置信息以及测试流程信息生成各个测试项对应的自动化测试脚本,用于在运行时对待测试接口的各个测试项进行自动化测试;
步骤1.3,将生成的各个自动化测试脚本存储在接口测试脚本库中,并将各个测试项的项目名称作为接口测试脚本库中各个自动化测试脚本的脚本索引,用于从脚本库中快速选择各个测试项对应的自动化测试脚本,提高自动化测试脚本的查找效率;
步骤1.4,从历史测试数据中筛选出各个接口名称,再将各个不同的接口名称写入测试项对应表的第一列,如图2所示;
步骤1.5,将相同接口名称对应的各个测试要求合并为一个测试要求组,并在测试要求组内按照各个测试要求名称分成对应的测试要求分组,同一测试要求分组内各个测试要求名称相同并在测试要求名称后标记有对应的测试日期,再将各个测试要求组按照第一列的各个接口名称对应写入测试项对应表的第二列;
步骤1.6,将相同测试要求对应的各个测试项合并为一个测试项组,并在测试项组内按照各个测试项名称分成对应的测试项分组,同一测试项分组内各个测试项名称相同并在测试项目名称后标记有对应的测试日期,通过测试日期的标记能够便于后期进行重复测试的统计,再将各个测试项组按照第二列的各个测试要求分组对应写入测试项对应表的第三列。
通过测试项对应表对接口名称、测试要求以及测试项进行分行、分列统计,能够便于后续对各个测试项的被选中概率进行统计计算。
进一步的,步骤1.2中,生成各个测试项对应的自动化测试脚本的具体步骤为:
步骤1.2.1,根据各个测试项的测试参数配置信息生成对应的config文件,并在config文件中设置各个测试用例py文件的存储路径以及report文件的存储路径;
步骤1.2.2,由用户根据各个测试项定制对应的测试用例py文件,用于在启动运行时通过测试用例对待测试接口的对应测试项进行测试,测试用例比如上传速率测试用例、下载速率测试用例、传输时延测试用例等;
步骤1.2.3,利用各个config文件分别对各个测试用例py文件进行参数配置,例如进行波特率、数据位、停止位、校验位等参数的配置,再根据各个测试项的测试流程信息设置各个测试用例py文件在自动化测试脚本中的启动顺序。
利用config文件能够便于实现各个测试用例py文件进行参数的快速且批量配置;利用测试用例py文件能够在启动运行时通过测试用例对待测试接口的对应测试项进行测试。
进一步的,步骤2中,根据测试项对应表生成各个测试要求的测试模式的具体步骤为:
步骤2.1,对测试项对应表中的各个测试要求以及各个测试项进行统计,获得相同测试要求下各个测试项的被选中概率;
步骤2.2,根据各个测试项的被选中概率对各个测试项进行划分,将被选中概率≥90%的测试项划分为基础测试项,将被选中概率≥60%的测试项划分为默认测试项,将被选中概率≥30%的测试项划分为全面测试项;
步骤2.3,将全面测试项作为全面测试模式下的各个测试项,将默认测试项作为默认测试模式下的各个测试项,将基础测试项作为基础测试模式下的各个测试项。
通过计算获得相同测试要求下各个测试项的被选中概率,从而根据历史数据将被选中概率的大小将相应的测试项设置为基础测试项、默认测试项或者全面测试项,便于后续进行接口测试时进行选择,增强接口测试的灵活性。
进一步的,步骤2中,测试模式还包括自定义测试模式;自定义测试模式允许选择测试项对应表中各个测试要求对应的全部测试项,其中与默认测试项相同的各个测试项被默认选定,其余测试项默认未选定,且默认选定以及默认未选定的测试项均允许被改选。
通过自定义测试模式能够便于用户在全面测试模式、默认测试模式、基础测试模式外提供一种可以自行选择的模式,能够对全部的测试项进行自定义选择,且将选中频率较高的测试项进行默认选定,并允许默认选定被修改。
进一步的,步骤2.1中,获得相同测试要求下各个测试项被选中的概率的具体步骤为:
步骤2.1.1,统计测试项对应表中每个测试要求分组内的测试要求名称数量为M i ,例如图2中,通信速率测试数量M 1=6,通信安全测试数量M 2=4,通信时延测试数量M 3=5;
步骤2.1.2,统计测试项对应表中每个测试项分组内各个测试项名称的被选中次数,若测试项分组内有多个测试日期相同的测试项名称,表明该测试项在该测试日期的测试要求下进行了多次重复测试,可能原因是测试过程中出现了错误或者为了确保可靠性进行的多次重复测试,因此在统计时如果将重复测试全部都计算在内的话就会扰乱正常的选中概率计算,所以对测试日期相同的测试项名称数量进行加权计算,最终得到的测试项名称数量为:
N j =a j +b j +c j ×0.2+d j ×0.1
式中,a j 为当前测试项分组内没有相同测试日期的测试项名称数量,b j 为当前测试项分组内有相同测试日期的测试项名称数量,c j 为当前测试项分组内有两个以上相同测试日期的测试项名称数量,d j 为当前测试项分组内有三个以上相同测试日期的测试项名称数量,例如图2中,在上传速率测试分项中a 1=4,b 1=c 1=d 1=0,在下载速率测试分项中a 2=2,b 2=1,c 2=1,d 2=1,在并行速率测试分项中a 2=4,b 2=2,c 2=2,d 2=1;
步骤2.1.3,利用当前测试项名称数量N j 除以对应测试要求分组内测试要求名称数量M i 得到当前测试项的被选中概率P l ,例如图2中,上传速率测试被选中概率P 1=66.7%,为默认测试项,下载速率测试被选中概率P 2=55%,为全面测试项,并行速率测试被选中概率P 2=108.3%,为基础测试项。
利用当前测试项的被选中次数除以对应测试要求分组内测试要求数量得到当前测试项的被选中概率,因为历史测试数据中虽然相同的测试要求比较多,但是各个测试要求在选择测试项时由于测试人员的临时主观判断而选择不同的测试项,因此各个测试项的被选中概率是存在差异的。
进一步的,步骤3,实时获取用户针对待测试接口的测试请求的具体步骤:
步骤3.1,实时获取用户发送的请求信息,并对各个请求信息进行缓存;
步骤3.2,依次读取缓存的各个请求信息,并根据接口名称判断请求信息是否为针对待测试接口的测试请求,若为待测试接口的测试请求,则进入步骤3.2,否则返回步骤3.1;
步骤3.3,从测试请求中解析出用户设置的测试要求以及测试模式,并将解析出的测试要求在测试项对应表中的测试要求组进行名称匹配,若存在相同测试要求的名称,则认定为测试要求匹配成功,并进入步骤4,否则认定为测试要求匹配失败,并向用户反馈测试要求名称匹配失败信息,再进入步骤3.4;
步骤3.4,在设定时间内实时接收用户的新增测试信息,例如5分钟内,若接收到用户的新增测试信息,则根据新增测试信息获取用户从测试项对应表的测试项组中选择的各个测试项,否则向用户反馈测试要求匹配失败信息,再返回步骤3.1。
通过接口名称首先判断请求信息是否为针对待测试接口的测试请求,实现对测试请求进行验证,防止出现错误测试,保证待测试接口的安全性;通过测试要求的名称匹配能够在匹配成功后通过测试模式的设定选择出对应的测试项,从而顺利进入自动化测试过程;通过设定新增测试信息能够便于用户定制新的测试要求,增强测试的灵活性。
进一步的,步骤4中,根据测试要求以及测试模式确定出待测试接口的各个测试项的具体步骤:
步骤4.1,根据测试要求从测试项对应表中确定出测试要求分组,再根据确定出的测试要求分组找到对应的测试项组;
步骤4.2,根据测试模式从找到的测试项组中选出相应的测试项分组,每个测试项分组分别对应一个测试项。
通过测试要求以及测试模式进行双层逐级筛选,从而能够快速确定出相应的测试项,用于后续的自动化测试脚本选择。
进一步的,步骤5中,运行选出的各个自动化测试脚本对待测试接口依次进行各项自动化测试的具体步骤:
步骤5.1,按照测试流程信息首先通过get请求或post请求获取待测试接口的接口参数,对待测试接口的接口参数与选出的各个自动化测试脚本的测试参数配置信息进行参数匹配,若其中的接口名称以及接口位置均成功匹配,再则进入步骤5.2,否则退出接口测试步骤,并向用户反馈待测试接口的接口参数匹配失败信息;
步骤5.2,从选出的各个自动化测试脚本中选择一个未运行过的作为当前测试脚本,根据config文件中的存储路径找出当前测试脚本对应的各个测试用例py文件,再对待测试接口运行找出的各个测试用例py文件,从而运行对应的测试用例对待测试接口进行测试获得report文件;
步骤5.3,根据config文件中的存储路径对获得的report文件进行存储,并对report文件进行文件编号;
步骤5.4,判断是否全部自动化测试脚本均运行完毕,若全部运行完毕,则进入步骤6,否则返回步骤5.2。
通过获取待测试接口的接口参数,从而在测试之前对接口进行匹配,只有在匹配成功后才进行测试,防止误测试对接口造成不可逆的损害;利用测试用例py文件启动运行对应的测试用例对待测试接口进行测试,能够实现接口的快速自动测试;利用report文件存储测试结果,从而便于后续查看。
进一步的,步骤6中,在各项自动化测试完成后向用户发送全部测试结果的具体步骤:
步骤6.1,对按照文件编号对存储的各个report文件进行分析,生成待测试接口的测试结果allure报告;
步骤6.2,获取当前待测试接口预设的结果接收邮箱,并向结果接收邮箱发送测试结果allure报告。
通过测试结果allure报告能够充分展示测试结果,便于用户查看。
如上所述,尽管参照特定的优选实施例已经表示和表述了本发明,但其不得解释为对本发明自身的限制。在不脱离所附权利要求定义的本发明的精神和范围前提下,可对其在形式上和细节上作出各种变化。

Claims (8)

1.一种接口自动化测试方法,其特征在于,包括如下步骤:
步骤1,根据各类接口的历史测试数据构建一个存储有各类接口的自动化测试脚本的接口测试脚本库以及一个对接口名称、测试要求以及测试项进行对应统计的测试项对应表;
步骤2,根据测试项对应表生成各个测试要求的测试模式,包括全面测试模式、默认测试模式以及基础测试模式;
步骤3,实时获取用户针对待测试接口的测试请求,测试请求包括用户选定的测试要求以及测试模式;
步骤4,根据测试要求以及测试模式确定出待测试接口的各个测试项,再从接口测试脚本库中选出各个测试项对应的自动化测试脚本;
步骤5,运行选出的各个自动化测试脚本对待测试接口依次进行各项自动化测试;
步骤6,在各项自动化测试完成后向用户发送全部测试结果;
步骤2中,根据测试项对应表生成各个测试要求的测试模式的具体步骤为:
步骤2.1,对测试项对应表中的各个测试要求以及各个测试项进行统计,获得相同测试要求下各个测试项的被选中概率;
步骤2.2,根据各个测试项的被选中概率对各个测试项进行划分,将被选中概率≥90%的测试项划分为基础测试项,将被选中概率≥60%的测试项划分为默认测试项,将被选中概率≥30%的测试项划分为全面测试项;
步骤2.3,将全面测试项作为全面测试模式下的各个测试项,将默认测试项作为默认测试模式下的各个测试项,将基础测试项作为基础测试模式下的各个测试项;
步骤2.1中,获得相同测试要求下各个测试项被选中的概率的具体步骤为:
步骤2.1.1,统计测试项对应表中每个测试要求分组内的测试要求名称数量为M i
步骤2.1.2,统计测试项对应表中每个测试项分组内各个测试项名称的被选中次数,若测试项分组内有多个测试日期相同的测试项名称,则对测试日期相同的测试项名称数量进行加权计算,最终得到的测试项名称数量为:
N j =a j +b j +c j ×0.2+d j ×0.1
式中,a j 为当前测试项分组内没有相同测试日期的测试项名称数量,b j 为当前测试项分组内有相同测试日期的测试项名称数量,c j 为当前测试项分组内有两个以上相同测试日期的测试项名称数量,d j 为当前测试项分组内有三个以上相同测试日期的测试项名称数量;
步骤2.1.3,利用当前测试项名称数量N j 除以对应测试要求分组内测试要求名称数量M i 得到当前测试项的被选中概率P l
2.根据权利要求1所述的接口自动化测试方法,其特征在于,步骤1中,构建接口测试脚本库以及测试项对应表的具体步骤为:
步骤1.1,获取各类接口的历史测试数据,并从历史测试数据中获得各类接口的全部测试要求、每个测试要求对应的各个测试项、每个测试项的测试参数配置信息以及每个测试项的测试流程信息;
步骤1.2,根据每个测试项的测试参数配置信息以及测试流程信息生成各个测试项对应的自动化测试脚本,用于在运行时对待测试接口的各个测试项进行自动化测试;
步骤1.3,将生成的各个自动化测试脚本存储在接口测试脚本库中,并将各个测试项的项目名称作为接口测试脚本库中各个自动化测试脚本的脚本索引,用于从脚本库中快速选择各个测试项对应的自动化测试脚本;
步骤1.4,从历史测试数据中筛选出各个接口名称,再将各个不同的接口名称写入测试项对应表的第一列;
步骤1.5,将相同接口名称对应的各个测试要求合并为一个测试要求组,并在测试要求组内按照各个测试要求名称分成对应的测试要求分组,同一测试要求分组内各个测试要求名称相同并在测试要求名称后标记有对应的测试日期,再将各个测试要求组按照第一列的各个接口名称对应写入测试项对应表的第二列;
步骤1.6,将相同测试要求对应的各个测试项合并为一个测试项组,并在测试项组内按照各个测试项名称分成对应的测试项分组,同一测试项分组内各个测试项名称相同并在测试项目名称后标记有对应的测试日期,再将各个测试项组按照第二列的各个测试要求分组对应写入测试项对应表的第三列。
3.根据权利要求2所述的接口自动化测试方法,其特征在于,步骤1.2中,生成各个测试项对应的自动化测试脚本的具体步骤为:
步骤1.2.1,根据各个测试项的测试参数配置信息生成对应的config文件,并在config文件中设置各个测试用例py文件的存储路径以及report文件的存储路径;
步骤1.2.2,由用户根据各个测试项定制对应的测试用例py文件,用于在启动运行时通过测试用例对待测试接口的对应测试项进行测试;
步骤1.2.3,利用各个config文件分别对各个测试用例py文件进行参数配置,再根据各个测试项的测试流程信息设置各个测试用例py文件在自动化测试脚本中的启动顺序。
4.根据权利要求1所述的接口自动化测试方法,其特征在于,步骤2中,测试模式还包括自定义测试模式;自定义测试模式允许选择测试项对应表中各个测试要求对应的全部测试项,其中与默认测试项相同的各个测试项被默认选定,其余测试项默认未选定,且默认选定以及默认未选定的测试项均允许被改选。
5.根据权利要求2所述的接口自动化测试方法,其特征在于,步骤3,实时获取用户针对待测试接口的测试请求的具体步骤:
步骤3.1,实时获取用户发送的请求信息,并对各个请求信息进行缓存;
步骤3.2,依次读取缓存的各个请求信息,并根据接口名称判断请求信息是否为针对待测试接口的测试请求,若为待测试接口的测试请求,则进入步骤3.2,否则返回步骤3.1;
步骤3.3,从测试请求中解析出用户设置的测试要求以及测试模式,并将解析出的测试要求在测试项对应表中的测试要求组进行名称匹配,若存在相同测试要求的名称,则认定为测试要求匹配成功,并进入步骤4,否则认定为测试要求匹配失败,并向用户反馈测试要求名称匹配失败信息,再进入步骤3.4;
步骤3.4,在设定时间内实时接收用户的新增测试信息,若接收到用户的新增测试信息,则根据新增测试信息获取用户从测试项对应表的测试项组中选择的各个测试项,否则向用户反馈测试要求匹配失败信息,再返回步骤3.1。
6.根据权利要求4所述的接口自动化测试方法,其特征在于,步骤4中,根据测试要求以及测试模式确定出待测试接口的各个测试项的具体步骤:
步骤4.1,根据测试要求从测试项对应表中确定出测试要求分组,再根据确定出的测试要求分组找到对应的测试项组;
步骤4.2,根据测试模式从找到的测试项组中选出相应的测试项分组,每个测试项分组分别对应一个测试项。
7.根据权利要求3所述的接口自动化测试方法,其特征在于,步骤5中,运行选出的各个自动化测试脚本对待测试接口依次进行各项自动化测试的具体步骤:
步骤5.1,按照测试流程信息首先通过get请求或post请求获取待测试接口的接口参数,对待测试接口的接口参数与选出的各个自动化测试脚本的测试参数配置信息进行参数匹配,若其中的接口名称以及接口位置均成功匹配,再则进入步骤5.2,否则退出接口测试步骤,并向用户反馈待测试接口的接口参数匹配失败信息;
步骤5.2,从选出的各个自动化测试脚本中选择一个未运行过的作为当前测试脚本,根据config文件中的存储路径找出当前测试脚本对应的各个测试用例py文件,再对待测试接口运行找出的各个测试用例py文件,从而运行对应的测试用例对待测试接口进行测试获得report文件;
步骤5.3,根据config文件中的存储路径对获得的report文件进行存储,并对report文件进行文件编号;
步骤5.4,判断是否全部自动化测试脚本均运行完毕,若全部运行完毕,则进入步骤6,否则返回步骤5.2。
8.根据权利要求7所述的接口自动化测试方法,其特征在于,步骤6中,在各项自动化测试完成后向用户发送全部测试结果的具体步骤:
步骤6.1,对按照文件编号对存储的各个report文件进行分析,生成待测试接口的测试结果allure报告;
步骤6.2,获取当前待测试接口预设的结果接收邮箱,并向结果接收邮箱发送测试结果allure报告。
CN202211316661.6A 2022-10-26 2022-10-26 一种接口自动化测试方法 Active CN115391231B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211316661.6A CN115391231B (zh) 2022-10-26 2022-10-26 一种接口自动化测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211316661.6A CN115391231B (zh) 2022-10-26 2022-10-26 一种接口自动化测试方法

Publications (2)

Publication Number Publication Date
CN115391231A CN115391231A (zh) 2022-11-25
CN115391231B true CN115391231B (zh) 2023-02-07

Family

ID=84128689

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211316661.6A Active CN115391231B (zh) 2022-10-26 2022-10-26 一种接口自动化测试方法

Country Status (1)

Country Link
CN (1) CN115391231B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117009250A (zh) * 2023-09-25 2023-11-07 麒麟软件有限公司 一种Linux操作系统的GRUB自动测试方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107729243A (zh) * 2017-10-12 2018-02-23 上海携程金融信息服务有限公司 应用编程接口自动化测试方法、系统、设备及存储介质
CN108268348A (zh) * 2017-12-08 2018-07-10 广州视源电子科技股份有限公司 接口测试方法、装置、移动终端及存储介质
WO2020155778A1 (zh) * 2019-02-03 2020-08-06 苏州市龙测智能科技有限公司 接口自动化测试方法、测试装置、测试设备及存储介质
CN112286806A (zh) * 2020-10-28 2021-01-29 成都佰维存储科技有限公司 自动化测试方法、装置、存储介质及电子设备
CN112540924A (zh) * 2020-12-15 2021-03-23 中国平安人寿保险股份有限公司 接口自动化测试方法、装置、设备及存储介质
CN114546837A (zh) * 2022-01-27 2022-05-27 深圳希施玛数据科技有限公司 接口测试的方法、装置、设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107729243A (zh) * 2017-10-12 2018-02-23 上海携程金融信息服务有限公司 应用编程接口自动化测试方法、系统、设备及存储介质
CN108268348A (zh) * 2017-12-08 2018-07-10 广州视源电子科技股份有限公司 接口测试方法、装置、移动终端及存储介质
WO2020155778A1 (zh) * 2019-02-03 2020-08-06 苏州市龙测智能科技有限公司 接口自动化测试方法、测试装置、测试设备及存储介质
CN112286806A (zh) * 2020-10-28 2021-01-29 成都佰维存储科技有限公司 自动化测试方法、装置、存储介质及电子设备
CN112540924A (zh) * 2020-12-15 2021-03-23 中国平安人寿保险股份有限公司 接口自动化测试方法、装置、设备及存储介质
CN114546837A (zh) * 2022-01-27 2022-05-27 深圳希施玛数据科技有限公司 接口测试的方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN115391231A (zh) 2022-11-25

Similar Documents

Publication Publication Date Title
CN110491441B (zh) 一种模拟人群背景信息的基因测序数据仿真系统及方法
CN104641673B (zh) 用于自动配置测试仪的方法和测试系统
CN112327808A (zh) 一种汽车故障诊断方法、系统和汽车故障诊断仪
CN115391231B (zh) 一种接口自动化测试方法
WO2008092345A1 (fr) Procédé et appareil de génération de scénario de test, procédé, appareil et système pour test de vérification
CN110737584A (zh) 基于区块链的业务数据测试方法、装置及计算机设备
CN109101680B (zh) 基于GitLab-CI的FPGA原型自动验证方法及系统
CN107861876A (zh) 测试方法、装置、计算机设备及可读存储介质
CN112526319B (zh) 芯片测试方法、装置、处理器芯片及服务器
CN106776165A (zh) 服务器性能测试方法及系统
CN111435146A (zh) 一种基于mes的晶圆测试方法及系统
CN106919431B (zh) 持续集成中的代码比对方法、设备以及系统
CN114996127A (zh) 固态硬盘固件模块智能化测试方法及系统
CN110149241B (zh) 一种基于ims设备的自动化测试方法及存储介质
CN117608903A (zh) 自动生成测试报告的方法、装置、设备和存储介质
CN115827499B (zh) 一种ui自动化测试方法
CN117033209A (zh) Ai模型训练方法、bios测试方法、装置、设备及存储介质
CN109828910A (zh) monkey测试的方法及装置、计算机设备、存储介质
CN115373710A (zh) 车辆ota升级的控制方法、装置、车辆及存储介质
CN115098739A (zh) 决策引擎的报文比对方法及装置
CN114546749A (zh) 一种芯片随机测试用例回归方法、装置、设备及可读介质
CN112131128A (zh) 数据测试方法、装置、存储介质和电子装置
CN113176995A (zh) 基于测试场景的接口测试方法、装置、设备及介质
CN112612702A (zh) 一种基于web的自动测试方法及装置
CN111078193A (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