本发明涉及一种接口测试方法,具体是指一种自动化的接口测试方法。
背景技术:
接口测试是测试系统组件间接口的一种测试,主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
接口测试适用于为其他系统提供服务的底层框架系统和中心服务系统,主要测试这些系统对外部提供的接口,验证其正确性和稳定性。接口测试同样适用于一个上层系统中的服务层接口,越往上层,其测试的难度越大。
接口测试实施在多系统多平台的构架下,有着极为高效的成本收益比,接口测试天生为搞复杂性的平台带来高效的缺陷监测和质量监督能力。平台越复杂,系统越庞大,接口测试的效果越明显。
接口测试的目的是测试接口,尤其是那些与系统相关联的外部接口,测试的重点是要检查数据的交换,传递和控制管理过程,还包括处理的次数。
然而,如今的接口测试基本都是依靠人力来执行测试用例,整个测试的过程较为繁杂,需要耗费较多的时间。而在测试完成后还需要人工来收集各个测试用例的各项测试结果,并将测试结果整理成测试报告。此过程不仅耗时耗力,同时因为参数的繁杂性,很容易导致最终的测试报告中出现错误,其精准性主要依靠测试人员的职业技能水平,难以进行很好的错误规避。
技术实现要素:
本发明的目的在于克服上述问题,提供一种自动化的接口测试方法,提高了接口测试的智能性,并使得整个接口测试的过程无需再通过人工完成,大大提高了接口测试的效率,并进一步提高了接口测试的准确性。
本发明的目的通过下述技术方案实现:
一种自动化的接口测试方法,包括以下步骤:
(1)开发自动化执行工具,并针对项目接口编写接口测试用例以及环境预设置脚本,并将接口测试用例和环境预设置脚本工程上传至gitlab中;
(2)在服务器上部署自动化执行工具,并且对该自动化执行工具配置接口测试用例工程的gitlab地址;
(3)在自动化执行工具中根据接口所需的运行环境选择并执行相应的环境预设置脚本;
(4)自动化执行工具自动获取所有的接口测试用例并且在页面进行展示;
(5)在自动化执行工具的展示页面中选择要执行的接口测试用例,并且选择具体的执行方式,自动化执行工具根据所选的执行方式自行运行已选的接口测试用例;
(6)接口测试用例执行完成后,自动化执行工具解析并存储接口测试用例的执行结果,并将执行结果中相应的项目提取并整理成测试报告,同时在页面上进行展示;
(7)自动化执行工具将测试报告通过邮件发送给相关人员。
进一步的,步骤(1)中自动化执行工具的具体构建方法为:
(11)通过java语言编写接口测试用例执行模块、接口测试用例结果收集模块以及邮件发送模块,并将上述各模块组合成自动化执行工具的框架;
(12)通过python语言编写接口测试用例,将编写好的接口测试用例储存在gitlab中,并将储存接口测试用例的gitlab地址输入步骤(11)中构架的自动化执行工具中;
(13)通过python语言编写环境预设置脚本,且该环境预设置脚本与接口测试用例在同一python工程中,将环境预设置脚本储存在gitlab中,并将环境预设置脚本的gitlab地址输入步骤(11)中构架的自动化执行工具中。
作为优选,步骤(5)所述的执行方式包括立即执行和定时执行,执行方式中还包括运行循环次数以及运行间隔时间的设置。
作为优选,步骤(6)中所述的接口测试用例的执行结果与测试报告均将在数据库中进行储存,同时自动化执行工具还会将接口测试用例的执行时间同步储存在数据库中。
本发明与现有技术相比,具有以下优点及有益效果:
(1)本发明很好的解决了人工进行接口测试效率低的问题,更好的节约了人力资源,同时大大提高了接口测试的效率以及测试结果整理的准确性;
(2)本发明利用运行条件模块来设定接口测试的触发条件,使得接口测试的时间与方式更加灵活,进一步提高了接口测试的灵活性,同时很好的提升了接口测试的智能性,降低了服务器的工作压力,更加合理的分配了服务器资源;
(3)本发明的接口测试用例的执行结果与测试报告均将在数据库中进行储存,能够很方便的在需要时进行调阅。
(4)本发明可以根据需求自行在自动化执行工具中集成各项小工具,以便于产品的实际使用,使得自动化执行工具可以适应更多的需求与环境。
具体实施方式
下面结合实施例对本发明作进一步的详细说明,但本发明的实施方式不限于此。
实施例
一种自动化的接口测试方法,包括以下步骤:
(1)开发自动化执行工具,并针对项目接口编写接口测试用例以及环境预设置脚本,并将接口测试用例和环境预设置脚本工程上传至gitlab中;
自动化执行工具的具体构建方法为:
(11)通过java语言编写接口测试用例执行模块、接口测试用例结果收集模块以及邮件发送模块,并将上述各模块组合成自动化执行工具的框架;
(12)通过python语言编写接口测试用例,将编写好的接口测试用例储存在gitlab中,并将储存接口测试用例的gitlab地址输入步骤(11)中构架的自动化执行工具中;接口测试用例需要根据实际的项目进行编写,每个项目都需要与其匹配的接口测试用例,在使用的过程中还可以根据需要增添新的接口测试用例;若在使用过程中需要增添新的接口测试用例,只需在接口测试用例工程中添加新的接口测试用例后并将其上传至gitlab即可。
(13)通过python语言编写环境预设置脚本,且该环境预设置脚本与接口测试用例在同一python工程中,将环境预设置脚本储存在gitlab中,并将环境预设置脚本的gitlab地址输入步骤(11)中构架的自动化执行工具中;环境预设置脚本可以根据不同的环境编写多种不同的环境脚本,比如webtest和apptest等环境。
上述的各项模块以及脚本的编写均属于本领域技术人员的常规技术手段,本领域技术人员可以根据实际的需求编写出相应功能的模块或脚本,在此便不进行赘述。
(2)在服务器上部署自动化执行工具,并且对该自动化执行工具配置接口测试用例工程的gitlab地址;在部署该自动化执行工具后保持该自动化执行工具的运行状态,在未使用时依旧需要保持该自动化执行工具的后台运行情况。
(3)在自动化执行工具中根据接口所需的运行环境选择并执行相应的环境预设置脚本。如此便可以使得本方法拥有更高的适应性,可以适应各种环境如:web环境、app环境、windows环境等。
(4)自动化执行工具自动获取所有的接口测试用例并且在页面进行展示;
在对运行环境进行预设置后,与该运行环境相匹配的接口测试用例将会显现,可以对其中显现的接口测试用例进行选择,也可以根据需求添加新的接口测试用例。如此设置的目的是为了避免操作人员选择的接口测试用例与运行环境相冲突,导致最终接口测试用例无法正常执行。
为了更加合理的利用服务器资源,在选择时可以将所有需要进行的接口测试用例均进行选择,以便于提高产品的智能性与使用效果。
(5)在自动化执行工具的展示页面中选择要执行的接口测试用例,并且选择具体的执行方式,自动化执行工具根据所选的执行方式自行运行已选的接口测试用例;
上述的执行方式包括立即执行和定时执行,立即执行是指设置完成后即刻进行接口测试的过程,而定时执行则是在指定的时间启动并进行接口测试。执行方式中还可以设置循环次数,从而根据需求设置一次、多次或无限次;还可以设置两次执行之间的间隔时间等内容,以进一步提高产品的功能性。
若不是急需测试结果,一般情况下应将自动化执行工具自动运行的过程放在凌晨或者休息日进行,如此可以降低服务器的工作压力,进一步节省服务器资源,提高了服务器的利用率。
(6)接口测试用例执行完成后,自动化执行工具解析并存储接口测试用例的执行结果,并将执行结果中相应的项目提取并整理成测试报告,同时在页面上进行展示;
接口测试用例的执行结果与测试报告均将在数据库中进行储存,同时自动化执行工具还会将接口测试用例的执行时间同步储存在数据库中。
具体的测试结果将以html格式的文件进行报告,本自动化执行工具中的接口测试用例结果收集模块将会对该html格式的文件进行解析,并从中提取所需要的数据整理成测试报告。
(7)自动化执行工具将测试报告通过邮件发送给相关人员。
测试报告的发送为本领域技术人员的常规技术手段,在发送前可以先在系统中设置相应的收件地址,在此便不进行赘述。
如上所述,便可很好的实现本发明。