一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种接口自动化测试方法与流程

2022-11-28 13:22:39 来源:中国专利 TAG:


1.本发明涉及一种接口测试方法,尤其是一种接口自动化测试方法。


背景技术:

2.目前,在新的接口开发完成之后,需要由接口测试人员进行人工测试,从而可以在程序部署早期及时发现问题,减少程序部署好之后再进行手工测试所花费的时间,从而加快版本迭代。接口测试时需要根据各个测试要求选定相应的测试项,例如对于接口名称为网络数据接口的测试要求包括通信速率测试、通信安全测试、通信时延测试等测试要求,其中通信速率测试又包括上传速率测试、下载速率测试、并行速率测试等测试项。但是现有技术的人工测试方法需要耗费大量的人力和时间成本,难以满足批量接口的快速测试需要。因此有必要设计出一种接口自动化测试方法,能够在接口开发完成后进行快速测试,减少人工参与,提高接口测试效率。


技术实现要素:

3.发明目的:提供一种接口自动化测试方法,能够在接口开发完成后进行快速测试,减少人工参与,提高接口测试效率。
4.技术方案:本发明所述的接口自动化测试方法,包括如下步骤:步骤1,根据各类接口的历史测试数据构建一个存储有各类接口的自动化测试脚本的接口测试脚本库以及一个对接口名称、测试要求以及测试项进行对应统计的测试项对应表;步骤2,根据测试项对应表生成各个测试要求的测试模式,包括全面测试模式、默认测试模式以及基础测试模式;步骤3,实时获取用户针对待测试接口的测试请求,测试请求包括用户选定的测试要求以及测试模式;步骤4,根据测试要求以及测试模式确定出待测试接口的各个测试项,再从接口测试脚本库中选出各个测试项对应的自动化测试脚本;步骤5,运行选出的各个自动化测试脚本对待测试接口依次进行各项自动化测试;步骤6,在各项自动化测试完成后向用户发送全部测试结果。
5.进一步的,步骤1中,构建接口测试脚本库以及测试项对应表的具体步骤为:步骤1.1,获取各类接口的历史测试数据,并从历史测试数据中获得各类接口的全部测试要求、每个测试要求对应的各个测试项、每个测试项的测试参数配置信息以及每个测试项的测试流程信息;步骤1.2,根据每个测试项的测试参数配置信息以及测试流程信息生成各个测试项对应的自动化测试脚本,用于在运行时对待测试接口的各个测试项进行自动化测试;步骤1.3,将生成的各个自动化测试脚本存储在接口测试脚本库中,并将各个测试项的项目名称作为接口测试脚本库中各个自动化测试脚本的脚本索引,用于从脚本库中快
速选择各个测试项对应的自动化测试脚本;步骤1.4,从历史测试数据中筛选出各个接口名称,再将各个不同的接口名称写入测试项对应表的第一列;步骤1.5,将相同接口名称对应的各个测试要求合并为一个测试要求组,并在测试要求组内按照各个测试要求名称分成对应的测试要求分组,同一测试要求分组内各个测试要求名称相同并在测试要求名称后标记有对应的测试日期,再将各个测试要求组按照第一列的各个接口名称对应写入测试项对应表的第二列;步骤1.6,将相同测试要求对应的各个测试项合并为一个测试项组,并在测试项组内按照各个测试项名称分成对应的测试项分组,同一测试项分组内各个测试项名称相同并在测试项目名称后标记有对应的测试日期,再将各个测试项组按照第二列的各个测试要求分组对应写入测试项对应表的第三列。
6.进一步的,步骤1.2中,生成各个测试项对应的自动化测试脚本的具体步骤为:步骤1.2.1,根据各个测试项的测试参数配置信息生成对应的config文件,并在config文件中设置各个测试用例py文件的存储路径以及report文件的存储路径;步骤1.2.2,由用户根据各个测试项定制对应的测试用例py文件,用于在启动运行时通过测试用例对待测试接口的对应测试项进行测试;步骤1.2.3,利用各个config文件分别对各个测试用例py文件进行参数配置,再根据各个测试项的测试流程信息设置各个测试用例py文件在自动化测试脚本中的启动顺序。
7.进一步的,步骤2中,根据测试项对应表生成各个测试要求的测试模式的具体步骤为:步骤2.1,对测试项对应表中的各个测试要求以及各个测试项进行统计,获得相同测试要求下各个测试项的被选中概率;步骤2.2,根据各个测试项的被选中概率对各个测试项进行划分,将被选中概率≥90%的测试项划分为基础测试项,将被选中概率≥60%的测试项划分为默认测试项,将被选中概率≥30%的测试项划分为全面测试项;步骤2.3,将全面测试项作为全面测试模式下的各个测试项,将默认测试项作为默认测试模式下的各个测试项,将基础测试项作为基础测试模式下的各个测试项。
8.进一步的,步骤2中,测试模式还包括自定义测试模式;自定义测试模式允许选择测试项对应表中各个测试要求对应的全部测试项,其中与默认测试项相同的各个测试项被默认选定,其余测试项默认未选定,且默认选定以及默认未选定的测试项均允许被改选。
9.进一步的,步骤2.1中,获得相同测试要求下各个测试项被选中的概率的具体步骤为:步骤2.1.1,统计测试项对应表中每个测试要求分组内的测试要求名称数量为mi;步骤2.1.2,统计测试项对应表中每个测试项分组内各个测试项名称的被选中次数,若测试项分组内有多个测试日期相同的测试项名称,则对测试日期相同的测试项名称数量进行加权计算,最终得到的测试项名称数量为:nj=aj bj cj×
0.2 dj×
0.1式中,aj为当前测试项分组内没有相同测试日期的测试项名称数量,bj为当前测试项分组内有相同测试日期的测试项名称数量,cj为当前测试项分组内有两个以上相同测试
日期的测试项名称数量,dj为当前测试项分组内有三个以上相同测试日期的测试项名称数量;步骤2.1.3,利用当前测试项名称的被选中次数nj除以对应测试要求分组内测试要求名称数量mi得到当前测试项的被选中概率p
l

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

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献