CN116028376B - 基于流量录制快速生成接口自动化用例的方法 - Google Patents
基于流量录制快速生成接口自动化用例的方法 Download PDFInfo
- Publication number
- CN116028376B CN116028376B CN202310301577.5A CN202310301577A CN116028376B CN 116028376 B CN116028376 B CN 116028376B CN 202310301577 A CN202310301577 A CN 202310301577A CN 116028376 B CN116028376 B CN 116028376B
- Authority
- CN
- China
- Prior art keywords
- flow
- recording
- generating
- interface automation
- interface
- 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
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Debugging And Monitoring (AREA)
- Automatic Tape Cassette Changers (AREA)
Abstract
本发明公开了一种基于流量录制快速生成接口自动化用例的方法,包括录入被测系统的ip地址和端口,生成录制命令;执行录制命令,录制流量;解析流量,获取流量信息;生成正常接口自动化用例和混沌接口自动化用例,并构建流量基准库;生成回放计划,回放并测试对应的自动化用例、混沌接口自动化用例;查看回放计划的测试结果。本发明可以快速生成自动化测试用例,覆盖各种真实场景,并将自动化测试用例存储到流量基准库,支持后续维护;同时可快速、生成混沌接口自动化用例,通过回放计划,批量执行混沌接口自动化用例和正常接口自动化用例,达到快速回归的效果。
Description
技术领域
本发明属于计算机技术领域,具体涉及一种基于流量录制快速生成接口自动化用例的方法。
背景技术
众所周知,自动化测试已经成为软件项目中不可或缺的测试方法。基于用户交互界面(GUI)的自动化测试方法具有模拟用户行为和过程可视化的特点,因此受到了广大入门自动化人士的喜爱。然而,伴随着敏捷开发和持续交付在软件开发项目中的普及和应用,测试工作的重心不得不进一步前移。由于用户交互界面(GUI)的开发通常处于软件开发的末端且缺陷修复成本较大,因此基于GUI的自动化测试无法很好的适用于此类项目。基于应用程序接口(API)的自动化测试却可以很好解决此类问题,同时相较于UI自动化测试,它具有自动化成本低和测试效率高的特点。
随着业务的增长,软件涉及到的接口数量剧增,编写自动化用例时复杂场景造数麻烦,日常自动化维护成本高,且不能完全覆盖真实业务场景,造成覆盖率低、工作量巨大,从而导致大部分公司的接口自动化代码覆盖率上不去。基本功能自动化覆盖率上不去的同时,混沌测试用例的建设力度自然更低,从而无法保障软件的健壮性,成为所述技术领域亟待解决的技术问题。
因此,本发明提供了一种基于流量录制快速生成接口自动化用例的方法,以至少解决上述部分技术问题。
发明内容
本发明要解决的技术问题是:提供一种基于流量录制快速生成接口自动化用例的方法,以至少解决上述部分技术问题。
为实现上述目的,本发明采用的技术方案如下:
一种基于流量录制快速生成接口自动化用例的方法,包括以下步骤:
步骤1、录入被测系统的ip地址和端口,生成录制命令;
步骤2、执行录制命令,录制流量;
步骤3、解析流量,获取流量信息;
步骤4、基于流量信息,生成正常接口自动化用例和混沌接口自动化用例,并构建流量基准库;
步骤5、生成回放计划,回放并测试对应的正常接口自动化用例、混沌接口自动化用例;
步骤6、查看回放计划的测试结果。
进一步地,在所述步骤2中,流量录制的方法包括:方法A、开启被测系统的流量日志开关,异步上传流量日志;方法B、触发被测系统的流量监控,通过kafka实时监控并上传流量。
进一步地,所述方法B包括:运用hook技术监听端口,实时监控流量,并将实时流量放上传至指定的kafka。
进一步地,在所述步骤3中,流量解析的方法包括:方法a、适用于流量录制的方法A,通过字符串拆分或者正则表达式解析指定格式日志,获取对应的流量信息;方法b、适用于流量录制的方法B,通过Kafka Listener方法监听kafka对应topic内容,然后通过字符串拆分或者正则表达式解析所述topic内容,获取对应的流量信息。
进一步地,在所述方法a中,指定格式日志为nginx日志。
进一步地,在所述步骤3中,流量信息至少包括请求地址、请求接口、请求参数、请求方法、响应结果。
进一步地,所述步骤4包括:步骤41、由包含正常流量信息的流量生成正常接口自动化用例;步骤42、由包含非正常流量信息的流量经过类型组合生成不同的参数、生成混沌接口自动化用例;步骤43、构建包括正常接口自动化用例和混沌接口自动化用例的流量基准库。
进一步地,所述步骤5包括:步骤51、新增回放计划,从流量基准库选取待回放的正常接口自动化用例、混沌接口自动化用例并关联至回放计划;步骤52、批量执行回放计划中的自动化用例。
进一步地,在所述步骤52中,使用http client组装请求,批量执行回放计划中的自动化用例。
进一步地,所述步骤6包括:步骤61、获取自动化用例回放时的响应结果;步骤62、使用对比插件,对比流量信息的响应结果和回放时响应结果。与现有技术相比,本发明具有以下有益效果:
本发明可以快速生成自动化测试用例,覆盖各种真实场景,并将自动化测试用例存储到流量基准库,支持后续维护;同时可快速、生成混沌接口自动化用例,通过回放计划,批量执行混沌接口自动化用例和正常接口自动化用例,达到快速回归的效果。
附图说明
图1为本发明的方法流程图。
实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进一步详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
接口自动化测试的混沌接口测试作为模拟不可预知的故障,并测试软件对这些故障的反应,从而发现软件的健壮性缺陷并修复,具有关键且不可替代的作用。但现有技术无法自动生成混沌接口测测试用例,并且只做了流量录制与回放,没有生成接口自动化用例资产,也无法通过计划的方式自由选择需要回放的用例,存在较大的弊端。
如图1所示,本发明提供的一种基于流量录制快速生成接口自动化用例的方法,包括以下步骤:
步骤1、录入被测系统的ip地址和端口,生成录制命令;
步骤2、执行录制命令,录制流量;
步骤3、解析流量,获取流量信息;
步骤4、基于流量信息,生成正常接口自动化用例和混沌接口自动化用例,并构建流量基准库;
步骤5、生成回放计划,回放并测试对应的正常接口自动化用例、混沌接口自动化用例;
步骤6、查看回放计划的测试结果。
本发明通过流量录制的方式,捕捉真实的流量请求,自动解析生成测试的自动化用例并构建流量基准库、即用例资产库,大大简化接口用例编写时获取原生数据的工作;同时可根据获取到的流量请求,自动解析组装混沌参数、生成混沌接口自动化用例,并通过回放计划批量执行正常接口自动化用例、混沌接口自动化用例,最后校验得到测试结果。本发明可大大减少编写自动化用例的时间,提升自动化覆盖率,弥补混沌测试的空缺。
流量就是某个时间段内的所有请求,通过某种手段把发送到A应用的所有请求录制下来,然后把这些请求统一转发到B应用,让B应用接收到的请求参数跟A应用保持一致,从而实现A接收到的请求在B应用里面重新请求了一遍,整个过程称之为“流量录制与回放”。实际流量录制的场景中存在两种可能性,场景1为被录制流量的被测系统和录制程序部署在同一台服务器上,场景2为被录制流量的被测系统和录制程序部署在不同的服务器上。在场景1的情况下,此时不需要明确被录制流量的被测系统ip地址及端口,即可采用默认的地址和端口生成录制命令去执行程序,但此时存在缺点,如果被测系统的部署方式不是默认端口,则录制不到对应流量请求,并且在场景2中,被测系统和录制程序部署在不同服务器也无法进行录制。为了所述问题,本发明支持手动录入被测系统的ip地址和端口,定向的生成录制命令,达到灵活配置的目的。作为优选,由自动化远程工具生成录制命令,即通过代码生成一系列的shell命令,通过程序执行远程shell命令的方式执行。
在部分实施例中,所述步骤2其流量录制的方法包括:方法A、开启被测系统的流量日志开关,异步上传流量日志;方法B、触发被测系统的流量监控,通过kafka实时监控并上传流量。其中,流量录制的方法A适用于生产环境,需要主动开启被测系统的流量日志开关,下载流量日志并上传到本系统内进行分析;流量录制的方法B适用于测试环境、预发布环境或者无限制条件的生产环境,只需要支持本系统部署方式后,在系统内触发流量监控,自动会通过kafka监控实时流量信息。作为优选,所述方法B包括:触发被测系统的流量监控,运用hook技术监听端口,实时监控流量,并将实时流量放上传至指定的kafka。
在部分实施例中,所述步骤3其流量解析的方法包括:方法a、适用于流量录制的方法A,通过字符串拆分或者正则表达式解析指定格式日志(nginx日志),获取对应的流量信息,也包括对应流量的接口信息;方法b、适用于流量录制的方法B,通过Kafka Listener方法监听kafka对应topic内容,然后通过字符串拆分或者正则表达式解析所述topic内容,获取对应的流量信息。所述流量信息至少包括请求地址、请求接口、请求参数、请求方法、响应结果。
在部分实施例中,所述步骤4包括:步骤41、由包含正常流量信息的流量生成正常接口自动化用例;步骤42、由包含非正常流量信息的流量经过类型组合生成不同的参数、生成混沌接口自动化用例;步骤43、构建包括正常接口自动化用例和混沌接口自动化用例的流量基准库。由于目前使用较多的HTTP请求有两种类型:GET和POST,GET请求较多运用于数据获取,POST请求较多运用于数据提交。一条HTTP请求的关键信息在请求URL地址、以及对应的请求参数中,所述HTTP请求的请求体为json格式。经过步骤1-3获取并解析出对应的流量信息也就是请求,当请求为包含正常的参数类型等的正常请求时,此时将正常请求作为一条正常接口自动化用例落入流量基准库,即将录制到的请求地址、请求方法、请求参数、响应结果等存到正常接口自动化用例中,执行正常接口自动化用例时,直接使用原有录制的流量信息进行请求。当请求为包含非正常的参数类型等的非正常请求时,经过类型组合生成不同类型的参数,例如正常传入的int类型的参数,生成一系列string类型、list类型、null类型,亦或字符串长度过长,添加无用参数,最后去掉必填参数等场景生成混沌接口自动化用例,即将将录制到的请求地址、请求方法、请求参数等经过类型组合生成不同的参数,落库到混沌接口自动化用例中。特别地,混沌接口自动化用例生成时,请求方法为GET请求,此时动态设置指定混沌的参数;请求方法为POST请求,获取请求体也就是流量信息中的json类型的参数,再通过类型组合生成不同的参数类型,落库为混沌接口自动化用例。正常接口自动化用例和混沌接口自动化用例根据标签区分,在后续进行回放时从流量基准库里选择需要执行的自动化用例。
在部分实施例中,所述步骤5包括:步骤51、新增回放计划,从流量基准库选取待回放的正常接口自动化用例、混沌接口自动化用例并关联至回放计划;步骤52、批量执行回放计划中的自动化用例。通过预先设置的计划方式,分别拉取对应的正常接口自动化用例、混沌接口自动化用例构建回放计划,然后使用http client组装请求,批量执行回放计划中的自动化用例,即使用自动化用例中记录的请求路径、请求参数,做http请求。所述计划方式可以只选择正常接口自动化用例进行回放,也可选择混沌接口自动化用例,也可以两种自动化用例一起回放。
在部分实施例中,所述步骤6包括:步骤61、获取自动化用例回放时的响应结果;步骤62、使用对比插件,对比流量信息的响应结果和回放时响应结果。作为优选,使用diff-match、codemirror等对比插件,在线对比录制时响应结果以及回放时响应结果,完成测试结果校验。
最后应说明的是:以上各实施例仅仅为本发明的较优实施例用以说明本发明的技术方案,而非对其限制,当然更不是限制本发明的专利范围;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围;也就是说,但凡在本发明的主体设计思想和精神上作出的毫无实质意义的改动或润色,其所解决的技术问题仍然与本发明一致的,均应当包含在本发明的保护范围之内;另外,将本发明的技术方案直接或间接的运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (7)
1.一种基于流量录制快速生成接口自动化用例的方法,其特征在于,包括以下步骤:
步骤1、录入被测系统的ip地址和端口,生成录制命令;
步骤2、由自动化远程工具生成录制命令,执行录制命令,录制流量;
在所述步骤2中,流量录制的方法包括:方法A、开启被测系统的流量日志开关,异步上传流量日志;方法B、触发被测系统的流量监控,通过kafka实时监控并上传流量;
步骤3、解析流量,获取流量信息;
在所述步骤3中,流量解析的方法包括:方法a、适用于流量录制的方法A,通过字符串拆分或者正则表达式解析指定格式日志,获取对应的流量信息;方法b、适用于流量录制的方法B,通过Kafka Listener方法监听kafka对应topic内容,然后通过字符串拆分或者正则表达式解析所述topic内容,获取对应的流量信息;
步骤4、基于流量信息,生成正常接口自动化用例和混沌接口自动化用例,并构建流量基准库;
步骤5、生成回放计划,回放并测试对应的正常接口自动化用例、混沌接口自动化用例;
所述步骤5包括:步骤51、新增回放计划,从流量基准库选取待回放的正常接口自动化用例、混沌接口自动化用例并关联至回放计划;步骤52、批量执行回放计划中的自动化用例;
步骤6、查看回放计划的测试结果。
2.根据权利要求1所述的一种基于流量录制快速生成接口自动化用例的方法,其特征在于,所述方法B包括:运用hook技术监听端口,实时监控流量,并将实时流量放上传至指定的kafka。
3.根据权利要求1所述的一种基于流量录制快速生成接口自动化用例的方法,其特征在于,在所述方法a中,指定格式日志为nginx日志。
4.根据权利要求1所述的一种基于流量录制快速生成接口自动化用例的方法,其特征在于,在所述步骤3中,流量信息至少包括请求地址、请求接口、请求参数、请求方法、响应结果。
5.根据权利要求4所述的一种基于流量录制快速生成接口自动化用例的方法,其特征在于,所述步骤4包括:步骤41、由包含正常流量信息的流量生成正常接口自动化用例;步骤42、由包含非正常流量信息的流量经过类型组合生成不同的参数、生成混沌接口自动化用例;步骤43、构建包括正常接口自动化用例和混沌接口自动化用例的流量基准库。
6. 根据权利要求1所述的一种基于流量录制快速生成接口自动化用例的方法,其特征在于,在所述步骤52中,使用http client组装请求,批量执行回放计划中的自动化用例。
7.根据权利要求1所述的一种基于流量录制快速生成接口自动化用例的方法,其特征在于,所述步骤6包括:步骤61、获取自动化用例回放时的响应结果;步骤62、使用对比插件,对比流量信息的响应结果和回放时响应结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310301577.5A CN116028376B (zh) | 2023-03-27 | 2023-03-27 | 基于流量录制快速生成接口自动化用例的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310301577.5A CN116028376B (zh) | 2023-03-27 | 2023-03-27 | 基于流量录制快速生成接口自动化用例的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116028376A CN116028376A (zh) | 2023-04-28 |
CN116028376B true CN116028376B (zh) | 2023-08-29 |
Family
ID=86074334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310301577.5A Active CN116028376B (zh) | 2023-03-27 | 2023-03-27 | 基于流量录制快速生成接口自动化用例的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116028376B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111522728A (zh) * | 2019-12-31 | 2020-08-11 | 支付宝实验室(新加坡)有限公司 | 自动化测试用例的生成方法、电子设备及可读存储介质 |
CN111767227A (zh) * | 2020-06-30 | 2020-10-13 | 深圳前海微众银行股份有限公司 | 一种录制回放测试的方法及装置 |
CN112749100A (zh) * | 2021-04-06 | 2021-05-04 | 四川新网银行股份有限公司 | 一种基于流量录制生成自动化测试案例的方法 |
CN113312259A (zh) * | 2021-05-26 | 2021-08-27 | 深圳前海微众银行股份有限公司 | 一种接口测试方法及装置 |
CN113742250A (zh) * | 2021-11-05 | 2021-12-03 | 广州易方信息科技股份有限公司 | 接口自动测试方法及装置 |
CN114546830A (zh) * | 2022-01-20 | 2022-05-27 | 北京百度网讯科技有限公司 | 回归测试方法、装置、电子设备及存储介质 |
CN115328784A (zh) * | 2022-08-16 | 2022-11-11 | 安徽工业大学科技园有限公司 | 一种面向敏捷接口的自动化测试方法及系统 |
CN115422063A (zh) * | 2022-09-06 | 2022-12-02 | 宁波数益工联科技有限公司 | 一种低代码接口自动化系统、电子设备及存储介质 |
CN115629967A (zh) * | 2022-10-08 | 2023-01-20 | 兴业银行股份有限公司 | 基于流量采集完成接口自动化用例生成及执行的方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2411495A (en) * | 2004-02-27 | 2005-08-31 | Cyan Holdings Ltd | Method and apparatus for generating configuration data |
US11374973B2 (en) * | 2018-12-20 | 2022-06-28 | Spirent Communications, Inc. | Streamlining cryptographic processes in a test environment |
-
2023
- 2023-03-27 CN CN202310301577.5A patent/CN116028376B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111522728A (zh) * | 2019-12-31 | 2020-08-11 | 支付宝实验室(新加坡)有限公司 | 自动化测试用例的生成方法、电子设备及可读存储介质 |
CN111767227A (zh) * | 2020-06-30 | 2020-10-13 | 深圳前海微众银行股份有限公司 | 一种录制回放测试的方法及装置 |
CN112749100A (zh) * | 2021-04-06 | 2021-05-04 | 四川新网银行股份有限公司 | 一种基于流量录制生成自动化测试案例的方法 |
CN113312259A (zh) * | 2021-05-26 | 2021-08-27 | 深圳前海微众银行股份有限公司 | 一种接口测试方法及装置 |
CN113742250A (zh) * | 2021-11-05 | 2021-12-03 | 广州易方信息科技股份有限公司 | 接口自动测试方法及装置 |
CN114546830A (zh) * | 2022-01-20 | 2022-05-27 | 北京百度网讯科技有限公司 | 回归测试方法、装置、电子设备及存储介质 |
CN115328784A (zh) * | 2022-08-16 | 2022-11-11 | 安徽工业大学科技园有限公司 | 一种面向敏捷接口的自动化测试方法及系统 |
CN115422063A (zh) * | 2022-09-06 | 2022-12-02 | 宁波数益工联科技有限公司 | 一种低代码接口自动化系统、电子设备及存储介质 |
CN115629967A (zh) * | 2022-10-08 | 2023-01-20 | 兴业银行股份有限公司 | 基于流量采集完成接口自动化用例生成及执行的方法及系统 |
Non-Patent Citations (1)
Title |
---|
一个SaaS应用业务功能层自动化测试工具的设计与实现;陈诗语;《中国优秀硕士学位论文全文数据库 中国优秀硕士学位论文全文数据库》(第3期);I138-129 * |
Also Published As
Publication number | Publication date |
---|---|
CN116028376A (zh) | 2023-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108319547B (zh) | 测试用例生成方法、装置和系统 | |
CN108399114B (zh) | 一种系统性能测试方法、装置及存储介质 | |
CN106933729A (zh) | 一种基于云平台的测试方法和系统 | |
US9720791B2 (en) | Device, method and program for performing system testing | |
CN114003451B (zh) | 一种接口测试方法、装置、系统及介质 | |
CN112799782B (zh) | 模型生成系统、方法、电子设备及存储介质 | |
CN112433948A (zh) | 一种基于网络数据分析的仿真测试系统及方法 | |
CN116933566B (zh) | 基于仿真系统的数据记录、数据回放与数据分析方法 | |
CN112597014A (zh) | 基于数据驱动的自动化测试方法、装置、介质及电子设备 | |
CN114328217A (zh) | 应用的测试方法、装置、设备、介质及计算机程序产品 | |
CN112738230A (zh) | 一种自动化网闸测试系统及其工作方法 | |
CN115510454A (zh) | 游戏测试方法、装置、电子设备及存储介质 | |
CN104506661A (zh) | 一种远程配置的基于使用场景的手机功耗自动化产生方法 | |
CN113722164A (zh) | 移动端自动化测试和远程真机调试方法、系统及存储介质 | |
CN116028376B (zh) | 基于流量录制快速生成接口自动化用例的方法 | |
CN111444109B (zh) | 一种移动端ui自动化测试方法及系统 | |
CN112988600A (zh) | 业务场景测试方法、装置、电子设备及存储介质 | |
CN114546814A (zh) | 录制回放方法、装置及存储介质 | |
CN102761453B (zh) | 一种测试客户端可用性的方法及客户端 | |
CN109151021B (zh) | 一种分布式存储系统文件锁特性测试方法和装置 | |
CN107180525A (zh) | 一种物理设备的蓝牙控制方法、装置、系统和相关设备 | |
CN111258893A (zh) | 随机组装交易路径的移动端应用自动化测试装置 | |
CN105389253B (zh) | 基于多线程技术模拟客户端执行网元管理的方法及系统 | |
CN113556269B (zh) | Sap客户端性能测试方法、系统、电子设备及存储介质 | |
EP3912111B1 (en) | System and method for simulating system operation conditions |
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 |