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

文档序号:17536640发布日期:2019-04-29 14:03阅读:202来源:国知局
一种http接口自动测试方法与流程

本发明涉及互联网技术领域,尤其涉及一种http接口自动测试方法。



背景技术:

使用手工测试接口,测试同一个接口需要反复输入数次至数十次不同的请求报文,并且每次请求后都需要检查返回参数及数据库数据插入是否正确;每次上线新程序前,都需要对新接口及可能影响的原有接口进行测试,如果都使用手工进行测试,需要消耗大量的人力,且有出错的可能。

中国专利,公开号:cn107797911a,公开日:2018年3月13日,该发明公开了用于测试http接口的方法和装置,所述方法的一具体实施方式包括:获取用户输入的针对待测试超文本传输协议http接口的测试用例;将所述测试用例中的第一个测试步骤作为当前测试步骤,并执行以下http接口测试步骤:将所述当前测试步骤的测试操作和测试数据封装成http测试请求包并发送到所述待测试http接口;判断所述待测试http接口返回的响应数据是否与所述当前测试步骤的期望结果数据相同,如果不同,则生成测试失败的结果;如果相同,则进一步判断所述当前测试步骤是否是所述测试用例的最后一个步骤,如果是,则生成测试成功的结果;如果不是,则将下一测试步骤作为当前测试步骤,继续执行所述http接口测试步。该方法提高了http接口测试效率,但对于测试故障预警以及故障的处理没有给出具体的方法。



技术实现要素:

本发明的目是解决hppt接口测试效率低下的问题,提出了一种http接口自动测试方法,使用自动化测试后,只要预先设置发送的报文,期望的返回值,及期望的数据库结果,后期无论测试几次,都只需执行测试程序,不需要人工介入,大量节省了人力成本,也减少了人工核对出错的可能,提高了接口测试效率。

为实现上述技术目的,本发明提供的一种技术方案是,一种http接口自动测试方法,包括如下几个步骤:

步骤1,预先使用excel配置测试用例;

步骤2,将完成的代码提交至代码服务器;

步骤3,配置相关服务及测试用环境;

步骤4,运行测试;

步骤5,将结果邮件分别发送给开发人员及对应的测试人员;本方案中,通过poi读取excel文件内容,并结构化数据,存入4个list<map<string,string>>中,分别用于请求http接口、返回报文验证、初始化数据库、验证数据库插入是否正确;通过httpclient实现http接口调用,将代码提交至代码服务器;循环读取list中的测试数据,初始化必要数据,并调用http接口,获取返回的报文;根据返回的报文及excel中的预设值,验证接口返回是否正确;最后根据代码提交记录,将测试的结果通过邮件发送给开发人员及测试人员。

进一步的,所述步骤1中,配置测试用例遵循如下步骤:

步骤11,用测试编号区分不同的测试用例;

步骤12,每条测试用例必须配置请求的报文、请求的接口、期望返回的报文、匹配方式以及期望的数据库结果,所述的匹配方式包括完全匹配以及包含匹配;

步骤13,选择配置数据库初始化sql脚本。

进一步的,所述的步骤3中配置相关服务及测试用环境遵循如下步骤:

步骤31,配置若干台接口测试用相关服务器,当同时有多个代码提交时,可以并行测试;

步骤32,配置jekins服务,当有代码更新时,自动拉取最新代码并触发测试,记录代码版本号;

步骤33,配置测试人员以及开发人员列表,后续发送测试结果邮件时需使用;

步骤34,设定配置错误重试次数阈值n,当某一测试用例执行失败后,重新进行测试,直至错误次数达到阈值n,执行下一个测试用例。

进一步的,所述的步骤4中每次运行测试前,新增一个测试结果文件,每次运行测试都有一个单独的结果文件,互不干涉,也保证每次测试结果都可追溯,具体测试遵循以下步骤:

步骤41,当更新的接口没有对应的测试用例时,跳过该接口的测试,并记录该接口缺少测试用例;当更新的接口有对应的测试用例时,运行测试;

步骤42,取出excel中的请求报文,将报文自动组装成json格式,并将组装完成的json数据发送至请求的接口;

步骤43,接口接收返回的报文,取出excel中的期望返回报文以及对应的匹配方式,进行结果验证;

步骤44,若为完全匹配,返回的报文和期望的报文完全一致,则测试通过,将测试编号,记录至结果文件;若为完全匹配,返回的报文和期望的报文有任何差异,则测试不通过,将测试编号,错误原因记录至结果文件;

步骤45,若为包含,返回的报文完全包含期望的报文,则测试通过,将测试编号,记录至结果文件;若为包含,有任意期望的报文在返回的报文中找不到,则测试不通过,将测试编号,错误原因记录至结果文件;

步骤46,取出excel中期望的数据库结果,查询数据库取出实际的结果,进行结果验证;若结果完全一致,则测试通过,将测试编号,测试通过,记录至结果文件;若结果有任何不同,则测试不通过,将将测试编号,错误原因记录至结果文件;

步骤47,所有接口的用例都执行完毕后,标记此次测试完毕。

进一步的,所述的步骤5中将结果邮件分别发送给开发人员及对应的测试人员遵循如下步骤:

步骤51,根据代码提交记录获取本次的开发人员地址信息,并将开发人员地址信息记录在开发人员列表中;

步骤52,将测试结果文件以及测试用例,发送至本次的开发人员及全体测试人员。

进一步的,所述的程序在运行测试过程出现错误时,对于恢复机制遵循以下步骤:

步骤61,开发连续提交代码,自动测试将进行排队处理,当一台服务器上的一个测试完成后,再进行下一次测试;

步骤62,当测试进行过程中,发生意外导致测试中断,重新启动程序时,检测测试是否完成;若有未完成的测试,构建当时开发提交的代码版本,从中断处重新执行测试用例;

步骤63,当测试进行过程中,某条测试用例执行失败;根据步骤34中的设置的重试次数,重新执行测试。

本发明的有益效果:采用本发明公开一种http接口自动测试方法后,只要预先设置发送的报文,期望的返回值,及期望的数据库结果,后期无论测试几次,都只需执行测试程序,不需要人工介入,大量节省了人力成本,也减少了人工核对出错的可能,提高了接口测试效率。

附图说明

图1为本发明的一种http接口自动测试方法的方法流程图。

图2为本发明的一种http接口自动测试方法的测试流程图。

具体实施方式

为使本发明的目的、技术方案以及优点更加清楚明白,下面结合附图和实施例对本发明作进一步详细说明,应当理解的是,此处所描述的具体实施方式仅是本发明的一种最佳实施例,仅用以解释本发明,并不限定本发明的保护范围,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例:如图1所示,一种http接口自动测试方法,包括如下几个步骤:

步骤1,预先使用excel配置测试用例;

步骤2,将完成的代码提交至代码服务器;

步骤3,配置相关服务及测试用环境;

步骤4,运行测试;

步骤5,将结果邮件分别发送给开发人员及对应的测试人员;本实施例中,通过poi读取excel文件内容,并结构化数据,存入4个list<map<string,string>>中,分别用于请求http接口、返回报文验证、初始化数据库、验证数据库插入是否正确;通过httpclient实现http接口调用,将代码提交至代码服务器;循环读取list中的测试数据,初始化必要数据,并调用http接口,获取返回的报文;根据返回的报文及excel中的预设值,验证接口返回是否正确;最后根据代码提交记录,将测试的结果通过邮件发送给开发人员及测试人员。

进一步的,作为所述的步骤1中的一个具体实施例,配置测试用例遵循如下步骤:

步骤11,用测试编号区分不同的测试用例;

步骤12,每条测试用例必须配置请求的报文、请求的接口、期望返回的报文、匹配方式以及期望的数据库结果,所述的匹配方式包括完全匹配以及包含匹配;

步骤13,选择配置数据库初始化sql脚本。

进一步的,作为所述的步骤12中的一个具体实施例配置excel测试数据,将必要的数据库初始化脚本写入文本文档,该实施例使用junit4调用测试方法如下:

首先配置第一个sheet页【请求报文】”:前四列固定为caseid(测试用例编号)、description(测试用例描述)、logintype(登录的系统类型)、requesturl(请求的接口地址)。后续为配置请求报文的内容;

其次配置第二个sheet页【期望的返回报文】:第一列固定为type(匹配方式):1代表完全匹配,0代表包含;第二列固定为caseid(测试用例编号);后续为期望的返回报文;

然后配置第三个sheet页【初始化数据库脚本】:第二列固定为caseid(测试用例编号),第二列固定为filepath(文件的路径);

最后配置第四个sheet页【期望的数据库结果】:sql为一般的sql语句,中$verifycodegroup$,代表【请求报文】页配置的数据;return代表期望数据库中有几条返回结果。

进一步的,编写调用方法中需要包含5个参数:

第一个参数用于获取该方法的文件路径;

第二个参数为预先设置的excel名称;

第三个参数为测试结果存放的路径;

第四个参数为测试结果存放的文件名;

第五个参数为调用接口的类型(post或者get);

进一步的,作为所述的步骤3中的一个具体实施例,配置相关服务及测试用环境遵循如下步骤:

步骤31,配置若干台接口测试用相关服务器,当同时有多个代码提交时,可以并行测试;

步骤32,配置jekins服务,当有代码更新时,自动拉取最新代码并触发测试,记录代码版本号;

步骤33,配置测试人员以及开发人员列表,后续发送测试结果邮件时需使用;

步骤34,设定配置错误重试次数阈值n,当某一测试用例执行失败后,重新进行测试,直至错误次数达到阈值n,执行下一个测试用例。本实施例中,3、搭建代码服务器可以选择svn、git、gitlab、cvs中的任意一种。

进一步的,作为所述的步骤4中的一个具体实施例,新增一个测试结果文件,每次运行测试都有一个单独的结果文件,互不干涉,也保证每次测试结果都可追溯,具体测试遵循以下步骤:

步骤41,当更新的接口没有对应的测试用例时,跳过该接口的测试,并记录该接口缺少测试用例;当更新的接口有对应的测试用例时,运行测试;

步骤42,取出excel中的请求报文,将报文自动组装成json格式,并将组装完成的json数据发送至请求的接口;

步骤43,接口接收返回的报文,取出excel中的期望返回报文以及对应的匹配方式,进行结果验证;

步骤44,若为完全匹配,返回的报文和期望的报文完全一致,则测试通过,将测试编号,记录至结果文件;若为完全匹配,返回的报文和期望的报文有任何差异,则测试不通过,将测试编号,错误原因记录至结果文件;

步骤45,若为包含,返回的报文完全包含期望的报文,则测试通过,将测试编号,记录至结果文件;若为包含,有任意期望的报文在返回的报文中找不到,则测试不通过,将测试编号,错误原因记录至结果文件;

步骤46,取出excel中期望的数据库结果,查询数据库取出实际的结果,进行结果验证;若结果完全一致,则测试通过,将测试编号,测试通过,记录至结果文件;若结果有任何不同,则测试不通过,将将测试编号,错误原因记录至结果文件;

步骤47,所有接口的用例都执行完毕后,标记此次测试完毕。本实施例中,开发提交代码至代码仓库时,jenkins自动运行测试。

进一步的,作为所述的步骤5中的一个具体实施例,所述的步骤5中将结果邮件分别发送给开发人员及对应的测试人员遵循如下步骤:

步骤51,根据代码提交记录获取本次的开发人员地址信息,并将开发人员地址信息记录在开发人员列表中;

步骤52,将测试结果文件以及测试用例,发送至本次的开发人员及全体测试人员。

进一步的,所述的程序在运行测试过程出现错误时,对于恢复机制遵循以下步骤:

步骤61,开发连续提交代码,自动测试将进行排队处理,当一台服务器上的一个测试完成后,再进行下一次测试;

步骤62,当测试进行过程中,发生意外导致测试中断,重新启动程序时,检测测试是否完成;若有未完成的测试,构建当时开发提交的代码版本,从中断处重新执行测试用例;

步骤63,当测试进行过程中,某条测试用例执行失败;根据34中的设置的重试次数,重新执行测试。

以上所述之具体实施方式为本发明一种射频信号频率自动校准电路的较佳实施方式,并非以此限定本发明的具体实施范围,本发明的范围包括并不限于本具体实施方式,凡依照本发明之形状、结构所作的等效变化均在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1