CN116662204A - 一种无码测试案例生成方法、装置、系统及存储介质 - Google Patents

一种无码测试案例生成方法、装置、系统及存储介质 Download PDF

Info

Publication number
CN116662204A
CN116662204A CN202310780775.4A CN202310780775A CN116662204A CN 116662204 A CN116662204 A CN 116662204A CN 202310780775 A CN202310780775 A CN 202310780775A CN 116662204 A CN116662204 A CN 116662204A
Authority
CN
China
Prior art keywords
interface
information
code
test case
flow data
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.)
Pending
Application number
CN202310780775.4A
Other languages
English (en)
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.)
Ping An Bank Co Ltd
Original Assignee
Ping An Bank 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 Ping An Bank Co Ltd filed Critical Ping An Bank Co Ltd
Priority to CN202310780775.4A priority Critical patent/CN116662204A/zh
Publication of CN116662204A publication Critical patent/CN116662204A/zh
Pending legal-status Critical Current

Links

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/3696Methods or tools to render software testable

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)
  • Telephonic Communication Services (AREA)

Abstract

本发明提供了一种无码测试案例生成方法、装置、系统及存储介质,涉及金融科技技术领域。所述无码测试案例生成方法包括:服务端获取DOOM平台的流量数据;对所述流量数据进行解析得到带有接口key的流量信息;根据流量信息生成无码测试案例。本发明实现了从编写到执行全自动智能生成案例,能够做到即时监控;流量数据基于业务真实测试场景的数据,能够更加有效验证业务逻辑;并且能够实现测试人员无需理解掌握业务逻辑即可直接使用测试用例,避免了现有的方法中效率低下、测试质量不高、难以理解业务场景、对专业技能需求较高、人为错误较多的问题,为金融机构系统的测试和维护带来了方便。

Description

一种无码测试案例生成方法、装置、系统及存储介质
技术领域
本发明涉及金融科技技术领域,更具体地说,涉及一种无码测试案例生成方法、装置、系统及存储介质。
背景技术
随着现代软件开发的迅速发展,尤其是金融机构系统中,自动化测试变得越来越重要。例如,金融机构的银行理财产品清算、计算收益以及行情分析等相关业务,都是通过一些自动化的定时跑批任务进行测试和处理,其通过使用流量平台来获取跑批任务的流量数据,可以模拟真实数据,同时智能生成可快速批量生成案例,提升覆盖率。
在实际应用中,测试人员或者是开发人员真正需要的自动化测试,是可以在不需要充分理解和清楚业务逻辑以及业务场景的情况下,仍旧可以使用自动化测试案例进行测试;例如,可能存在人员更换导致完全不了解业务的情况。
然而,在现有的测试方法中,采用录制、回放和编写脚本等方式实现测试用例的生成,但由于无法充分理解业务场景,导致测试结果不可靠,测试过程中出现的错误被忽略;并且,目前很多自动化测试工具提供的测试案例需要人为填写相应的接口报文以及返回报文,需要大量的手工劳动,需要利用人工编写测试用例,这样的工作效率并未达到预期效果,进而耗费大量时间和精力,且容易出现人为错误,从而影响测试结果的准确性。
总之,现有的方法中存在如下问题:效率低下、测试质量不高、难以理解业务场景、对专业技能需求较高、人为错误较多,为金融机构系统的测试和维护带来了巨大的不便。
发明内容
有鉴于此,针对于上述技术问题,本发明提供一种无码测试案例生成方法,包括:
服务端获取DOOM平台的流量数据;
所述服务端对所述流量数据进行解析,得到带有接口key的流量信息;
所述服务端根据所述带有接口key的流量信息生成所述无码测试案例。
优选地,所述服务端获取DOOM平台的流量数据,包括:
在所述DOOM平台上启动流量获取工具;
在发生应用操作时,通过所述流量获取工具拦截操作产生的流量数据,并将所述流量数据发送至所述服务端。
优选地,所述服务端对所述流量数据进行解析,得到带有接口key的流量信息,包括:
所述服务端对所述流量数据进行解析,确定所述流量数据所对应的目标接口,并生成与所述流量数据对应的接口key;
根据所述服务端的redis缓存对所述接口key的流量数据进行筛选,并存入所述redis缓存,得到带有接口key的流量信息。
优选地,所述根据所述服务端的redis缓存对所述接口key的流量数据进行筛选,并存入所述redis缓存,得到带有接口key的流量信息,包括:
判断所述redis缓存中是否存在与所述接口key对应的接口信息;
若所述redis缓存中存在与所述接口key对应的接口信息,则利用与所述接口信息相匹配的所述接口key的流量数据更新所述服务端的数据库中的记录信息;
若所述redis缓存中不存在与所述接口key对应的接口信息,则判定所述接口key与所述接口信息不同,生成一条新的数据,并存入所述redis缓存,并同步更新所述数据库中的记录信息;
其中,所述记录信息中包括所述带有接口key的流量信息。
优选地,所述服务端根据所述带有接口key的流量信息生成所述无码测试案例,包括:
所述服务端定时获取数据库中的带有接口key的所述流量数据;
根据所获取所述流量数据的接口属性进行与所述流量数据的请求报文的接口去重复处理;
在所述接口去重复处理后,将所述流量数据的请求头字符串和接口组件对象、案例对象信息绑定到所述请求报文所针对的接口,返回可验证断言格式,并存入所述数据库,得到所述无码测试案例。
优选地,所述根据所获取所述流量数据的接口属性进行与所述流量数据的请求报文的接口去重复处理,包括:
根据所述流量数据的接口名称和接口路径生成对应的接口属性;
根据所述流量数据的接口URL判断是否存在与所述流量数据的请求报文所请求的目标接口相同的请求信息;
若存在,则获取所述接口URL对应的目标接口的接口列表,并获取所述流量数据的所述请求报文的字段属性;
判断所述接口列表中是否存在于所述请求报文的接口key一致的接口;
若是,则更新所述流量数据的所述接口URL对应的目标接口的接口信息;
若否,则封闭所述接口信息,并在所述流量数据的所述接口属性中绑定当前的应用执行环境,且将所述接口信息入库。
优选地,所述在所述接口去重复处理后,将所述流量数据的请求头字符串和接口组件对象、案例对象信息绑定到所述请求报文所针对的接口,返回可验证断言格式,并存入所述数据库,得到所述无码测试案例,包括:
获取所述流量数据的请求头字符串并转换成JSONObject对象;
在转换成JSONObject对象后,根据所述流量数据的所述请求头字符串的应用ID查询对应的请求头模板,并根据所述请求头模板将请求头绑定到所述请求报文所针对的接口;
封装所述接口组件对象和所述案例对象信息并存入所述数据库,更新所述数据库中的案例组件关联表;
获取所述流量信息对应的响应报文信息,转为可验证断言格式,并存入所述数据库,得到所述无码测试案例。
优选地,所述根据所述流量数据的所述请求头字符串的应用ID查询对应的请求头模板,包括:
判断所述数据库中是否存在于所述应用ID对应的请求头模板;
若存在,则将所述数据库中的请求头模板作为所述应用ID的请求头模板;
若不存在,则封装请求头实体对象,并更新所述数据库。
此外,为解决上述问题,本发明还提供一种无码测试案例生成装置,包括:
获取模块,用于服务端获取DOOM平台的流量数据;
解析模块,用于所述服务端对所述流量数据进行解析,得到带有接口key的流量信息;
生成模块,用于所述服务端根据所述带有接口key的流量信息生成所述无码测试案例。
此外,为解决上述问题,本发明还提供一种无码测试案例生成系统,包括存储器以及处理器,所述存储器中存储有无码测试案例生成程序,所述处理器运行所述无码测试案例生成程序以使所述无码测试案例生成系统执行如上述所述的无码测试案例生成方法。
此外,为解决上述问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有无码测试案例生成程序,所述无码测试案例生成程序被处理器执行时实现如上述所述的无码测试案例生成方法。
本发明提供了一种无码测试案例生成方法、装置、系统及存储介质,其中,所述方法包括:服务端获取DOOM平台的流量数据;所述服务端对所述流量数据进行解析,得到带有接口key的流量信息;所述服务端根据所述带有接口key的流量信息生成所述无码测试案例。本发明基于DOOM平台流量进行无码案例智能生成,通过解析DOOM流量信息,根据具体的流量记录进行提炼出无码案例需要的元素,从而生成从接口、组件到案例,从请求头、绑定执行环境到接口断言、案例自定义断言等一套完整的案例数据。本发明实现了从编写到执行全自动智能生成案例,进而可通过daily build进行执行监测,能够做到即时监控;流量数据基于业务真实测试场景的数据,能够更加有效验证业务逻辑;并且能够实现测试人员无需理解掌握业务逻辑即可直接使用测试用例,避免了现有的方法中效率低下、测试质量不高、难以理解业务场景、对专业技能需求较高、人为错误较多的问题,为金融机构系统的测试和维护带来了方便。
附图说明
图1为本发明无码测试案例生成方法实施例涉及的硬件运行环境的结构示意图;
图2为本发明无码测试案例生成方法第1实施例的流程示意图;
图3为本发明无码测试案例生成方法第2实施例中步骤S100细化的流程示意图;
图4为本发明无码测试案例生成方法第2实施例中所述步骤S200细化的流程示意图;
图5为本发明无码测试案例生成方法第2实施例所述步骤S220细化的流程示意图;
图6为本发明无码测试案例生成方法第3实施例所述步骤S300细化的流程示意图;
图7为本发明无码测试案例生成方法第3实施例所述步骤S300细化(其中包括步骤S320的细化步骤)的流程示意图;
图8为本发明无码测试案例生成方法第3实施例所述步骤S330细化的流程示意图;
图9为本发明无码测试案例生成方法第3实施例所述步骤S3320细化的流程示意图;
图10为本发明无码测试案例生成装置的模块连接示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面详细描述本发明的实施例,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,是本发明实施例涉及的终端的硬件运行环境的结构示意图。
本发明实施例无码测试案例生成系统,可以为PC,也可以是智能手机、平板电脑或者便携计算机等可移动式终端设备等。该无码测试案例生成系统中可以包括:处理器1001、例如CPU,网络接口1004、用户接口1003、存储器1005和通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏、输入单元比如键盘、遥控器,可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器,例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。可选地,无码测试案例生成系统还可以包括RF(Radio Frequency,射频)电路、音频电路、WiFi模块等等。此外,该无码测试案例生成系统还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
本领域技术人员可以理解,图1中示出的无码测试案例生成系统并不构成对其的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、数据接口控制程序、网络连接程序以及无码测试案例生成程序。
总之,本发明实现了从编写到执行全自动智能生成案例,进而可通过daily build进行执行监测,能够做到即时监控;流量数据基于业务真实测试场景的数据,能够更加有效验证业务逻辑;并且能够实现测试人员无需理解掌握业务逻辑即可直接使用测试用例,避免了现有的方法中效率低下、测试质量不高、难以理解业务场景、对专业技能需求较高、人为错误较多的问题,为金融机构系统的测试和维护带来了方便。
实施例1:
参照图2,本发明实施例提供一种无码测试案例生成方法,包括:
步骤S100,服务端获取DOOM平台的流量数据。
本实施例,可以应用于服务端与DOOM平台端之间。
上述,DOOM是一个开源的基于Docker和Kubernetes的分布式任务调度平台,可以用来管理和调度各种类型的任务,包括定时批处理任务、实时流式计算任务和机器学习训练任务等。
上述,在DOOM平台中,每个用户的操作都会产生一定量的流量数据,这些数据可以包括用户的访问记录、查询条件、交易明细等等。例如,如果一个用户在DOOM平台上进行了一次查询操作,那么这次操作就会产生一条流量数据。这条数据可能包括用户在查询页面输入的查询条件、查询结果的展示方式、查询接口的调用情况等信息。除了查询操作,DOOM平台上的流量数据还可以包括用户的登录、注册、修改密码、交易等各种操作。
上述,可以通过在DOOM平台上安装插件或者应用程序,拦截用户操作流量,并将其传输到服务端进行处理。具体的:在DOOM平台上安装一个插件或者应用程序,该插件或应用程序可以监控并记录用户的操作流量,并将这些流量数据发送到服务端。在服务端可以使用类似于MQTT等消息队列技术来接收和处理这些流量数据。通过收集业务真实测试场景的流量数据,为自动化测试提供基础数据;能够准确地模拟用户的操作行为,提高测试用例的覆盖率;同时,利用自动化的方式收集数据,可以减少人为因素对数据采集的影响,提高数据的可靠性。
步骤S200,所述服务端对所述流量数据进行解析,得到带有接口key的流量信息;
上述,可以使用流量解析技术,对收集到的流量数据进行解析,提取关键信息,并为每个接口生成唯一的接口key。具体的:服务端通过解析收集到的流量数据,从中提取出关键信息,比如接口名称、请求参数、URL等,然后将这些信息作为接口的属性进行保存,并为每个接口生成唯一的接口key。随着流量数据不断的积累,服务端会不断地更新和完善接口信息,从而逐渐建立起一个完整的接口库。本步骤为无码测试案例的自动生成提供基础数据;
通过对流量数据进行自动解析,可以大大减少测试人员手动编写测试用例的工作量,提高测试效率;同时建立的接口库可以为其他自动化测试场景提供便利。
步骤S300,所述服务端根据所述带有接口key的流量信息生成所述无码测试案例。
上述,通过解析接口的属性信息,结合模板引擎等技术,自动生成相应的无码测试案例。具体的,服务端通过解析已经收集到的流量数据,提取出其中的关键信息,比如输入参数、请求头信息、响应结果等,然后利用模板引擎等技术自动生成相应的无码测试案例,包括接口调用序列、输入参数、状态转换、异常处理等内容。本步骤提高了测试效率,降低测试成本;能够有效验证业务逻辑,提高测试覆盖率;可以实现从编写到执行全自动智能生成案例,避免了现有方法中效率低下、测试质量不高、难以理解业务场景、对专业技能需求较高、人为错误较多的问题。
此外,在生成无码测试案例后,可以进一步的进行输出,在测试平台创建执行集并配置daily build,邮件通知执行结果,从而实现了从输入测试需求,自动配置、自动生成无码测试案例,并且自动进行测试的流程。
总之,本实施例基于DOOM平台流量进行无码案例智能生成,通过解析DOOM流量信息,根据具体的流量记录进行提炼出无码案例需要的元素,从而生成从接口、组件到案例,从请求头、绑定执行环境到接口断言、案例自定义断言等一套完整的案例数据。
本实施例实现了从编写到执行全自动智能生成案例,进而可通过daily build进行执行监测,能够做到即时监控;流量数据基于业务真实测试场景的数据,能够更加有效验证业务逻辑;并且能够实现测试人员无需理解掌握业务逻辑即可直接使用测试用例,避免了现有的方法中效率低下、测试质量不高、难以理解业务场景、对专业技能需求较高、人为错误较多的问题,为金融机构系统的测试和维护带来了方便。
实施例2:
参照图3,本发明第2实施例提供一种无码测试案例生成方法,基于上述实施例1,所述步骤S100,服务端获取DOOM平台的流量数据,包括:
步骤S110,在所述DOOM平台上启动流量获取工具;
上述,需要在DOOM平台上启动流量获取工具,以便拦截产生的流量数据。具体方法可能会使用开源的抓包工具,如tcpdump或Wireshark。通过安装抓包工具,可以在网络层面上捕获应用程序发送的请求和接收的响应,并获取到完整的http/https报文,包括请求头、请求体、响应头和响应体等信息。
步骤S120,在发生应用操作时,通过所述流量获取工具拦截操作产生的流量数据,并将所述流量数据发送至所述服务端。
上述,服务端需要通过所启动的流量获取工具拦截操作产生的流量数据,并将获取到的流量数据发送至服务端。例如,具体的流程可以如下:
(1)在客户端发起应用操作时,通过抓包工具拦截相关的请求和响应;
(2)获取到的流量数据会被打包成二进制格式,并通过网络协议传输到服务端;
(3)服务端接收到流量数据后,会对其进行解析,并提取出请求报文中的接口信息和相应的响应信息;
(4)解析后的信息会被存入数据库中,用于后续生成无码测试案例。
进一步的,参考图4,所述步骤S200,服务端对所述流量数据进行解析,得到带有接口key的流量信息,包括:
步骤S210,所述服务端对所述流量数据进行解析,确定所述流量数据所对应的目标接口,并生成与所述流量数据对应的接口key;
上述,服务端需要对前一步所获取到的流量数据进行解析,以确定其所对应的目标接口,并生成与流量数据对应的接口key。
具体可以如下:
首先,解析请求报文,获取请求报文中的接口名称、路径、参数等信息;
根据接口名称和路径构建接口属性,即接口的唯一标识符;
判断接口属性是否已存在于redis缓存中,若存在则直接获得接口key,否则新生成一个接口key,并将其与接口属性存入redis缓存中。
步骤S220,根据所述服务端的redis缓存对所述接口key的流量数据进行筛选,并存入所述redis缓存,得到带有接口key的流量信息。
上述,服务端需要根据redis缓存对接口key的流量数据进行筛选,并将其存入redis缓存中,以获取带有接口key的流量信息。
例如,可以包括如下实施方式:
通过接口key从redis缓存中获取该接口所对应的流量数据;
根据redis缓存的过期策略,对流量数据进行定时清理和更新;
如果redis缓存中不存在与接口key对应的接口信息,则会新生成一条记录,并存储到redis缓存中;
如果redis缓存中已经存在与接口key对应的接口信息,则会使用相同的接口key更新相应的记录。
进一步的,参考图5,所述步骤S220,根据所述服务端的redis缓存对所述接口key的流量数据进行筛选,并存入所述redis缓存,得到带有接口key的流量信息,包括:
步骤S221,判断所述redis缓存中是否存在与所述接口key对应的接口信息;
步骤S222,若所述redis缓存中存在与所述接口key对应的接口信息,则利用与所述接口信息相匹配的所述接口key的流量数据更新所述服务端的数据库中的记录信息;
步骤S223,若所述redis缓存中不存在与所述接口key对应的接口信息,则判定所述接口key与所述接口信息不同,生成一条新的数据,并存入所述redis缓存,并同步更新所述数据库中的记录信息;
其中,所述记录信息中包括所述带有接口key的流量信息。
上述,在服务端从redis缓存中获取带有接口key的流量数据,并根据接口信息更新数据库记录的过程。具体来说,该步骤包括以下几个步骤:
(1)判断redis缓存中是否存在与接口key对应的接口信息;
(2)如果存在,则使用匹配的接口key的流量数据更新服务端数据库中的记录信息;
(3)如果不存在,则生成一条新的数据,并将其插入到redis缓存和服务端数据库中。
例如,在实际使用中,如果服务端已经获取了带有接口key的流量数据,并将其存储在redis缓存中。当下次服务端需要使用这些数据时,会按照上述步骤进行操作,通过判断redis缓存中是否存在相应的接口信息,并根据不同的情况更新或添加新的数据记录,以提高测试效率和准确性。
总之,上述步骤实现了从redis缓存中获取流量数据,并根据接口信息更新数据库记录。通过将流量数据存储在redis缓存中,可以优化测试数据的获取和更新,提高测试效率。该技术优点包括:提高测试数据的获取和更新效率;减少对数据库的访问请求,降低系统负载;通过更新数据库记录,使得测试结果更加准确可靠。
实施例3:
参照图6,本发明第3实施例提供一种无码测试案例生成方法,基于上述实施例1,所述步骤S300,服务端根据所述带有接口key的流量信息生成所述无码测试案例,包括:
步骤S310,所述服务端定时获取数据库中的带有接口key的所述流量数据;
上述,服务端针对数据库中的流量,可以开启定时生成的任务,例如,每隔三个小时读取指定阈值的流量数据,在拿到数据后可以进行生成接口、组件、案例、请求头、绑定执行环境以及返回值断言等。
步骤S320,根据所获取所述流量数据的接口属性进行与所述流量数据的请求报文的接口去重复处理;
步骤S330,在所述接口去重复处理后,将所述流量数据的请求头字符串和接口组件对象、案例对象信息绑定到所述请求报文所针对的接口,返回可验证断言格式,并存入所述数据库,得到所述无码测试案例。
在上述步骤中,实现了根据带有接口key的流量信息生成无码测试案例。例如,该步骤主要包括以下几个步骤:
(1)定时获取数据库中的流量数据;
(2)根据请求报文的接口属性进行去重复处理;
(3)将请求头字符串、接口组件对象和案例对象信息绑定到请求报文所针对的接口上;
(4)返回可验证断言格式,存入数据库。
例如,在实际使用中,服务端会定时从数据库中获取流量数据,并根据请求报文的接口属性进行去重复处理。然后,服务端将请求头字符串、接口组件对象和案例对象信息绑定到请求报文所针对的接口上,并返回可验证断言格式并存储在数据库中。这样可以快速生成大量无码测试案例,提高软件测试效率。
通过上述步骤,实现了根据带有接口key的流量信息生成无码测试案例。通过采用无码测试案例的方式,可以避免手动编写测试用例时需要大量耗费时间和精力的工作,并且提高了测试覆盖率和效率。该技术优点包括:快速生成大量无码测试案例,提高软件测试效率;避免手动编写测试用例需耗费大量时间和精力的工作;提高测试覆盖率,降低测试漏测的风险。
进一步的,参考图7,所述步骤S320,根据所获取所述流量数据的接口属性进行与所述流量数据的请求报文的接口去重复处理,包括:
步骤S321,根据所述流量数据的接口名称和接口路径生成对应的接口属性;
上述,接口名称,即为Inerface_name,接口路径即为Interface_path。
本步骤中,在拿到流量数据后,可以将将对应的Inerface_name和Interface_path等信息存入接口属性。
步骤S322,根据所述流量数据的接口URL判断是否存在与所述流量数据的请求报文所请求的目标接口相同的请求信息;
上述,为根据interface_url(接口URL)来校验的步骤。校验是否已经存在同一个请求的接口。
步骤S323,若存在,则获取所述接口URL对应的目标接口的接口列表,并获取所述流量数据的所述请求报文的字段属性;
上述,若存在,则将已有当前URL对应的接口列表查出,解析流量数据中的Request字段属性。
此外,如果不存在,则可以直接进行数据库的更新,可直接执行步骤S330。
步骤S324,判断所述接口列表中是否存在于所述请求报文的接口key一致的接口;
步骤S325,若是,则更新所述流量数据的所述接口URL对应的目标接口的接口信息;
步骤S326,若否,则封闭所述接口信息,并在所述流量数据的所述接口属性中绑定当前的应用执行环境,且将所述接口信息入库。
上述,可以进行循环比对,判断现有的接口是否与当前流量请求报文的key一致;若一致则直接更新已存在接口的信息;若不一致则封闭接口信息,同时在接口属性中绑定当前应用执行环境,接口数据入库。
上述步骤中,实现了根据流量数据的请求报文接口属性进行去重复处理。例如,该步骤可以包括以下几个步骤:
(1)根据流量数据的接口名称和路径生成对应的接口属性;
(2)判断是否存在与请求报文所请求的目标接口相同的请求信息;
(3)如果存在,则更新请求报文所对应的接口信息;
(4)如果不存在,则封闭接口信息,并在流量数据的接口属性中绑定当前的应用执行环境,并将接口信息存入数据库。
例如,在实际使用中,服务端会根据流量数据的接口名称和路径生成对应的接口属性,并判断是否存在与请求报文所请求的目标接口相同的请求信息。如果存在,则服务端会更新请求报文所对应的接口信息;否则,服务端会封闭接口信息,并在流量数据的接口属性中绑定当前的应用执行环境,并将接口信息存入数据库。这样可以避免相同请求重复生成,提高测试效率。
上述步骤实现了根据流量数据的请求报文接口属性进行去重复处理。通过去除相同请求的重复生成,可以降低测试成本和维护难度,并提高测试准确性。该技术避免了相同请求重复生成,降低测试成本和维护难度;提高测试准确性,减少测试漏测的风险。
进一步的,参考图8,所述步骤S330,在所述接口去重复处理后,将所述流量数据的请求头字符串和接口组件对象、案例对象信息绑定到所述请求报文所针对的接口,返回可验证断言格式,并存入所述数据库,得到所述无码测试案例,包括:
步骤S331,获取所述流量数据的请求头字符串并转换成JSONObject对象;
上述,JSONObject对象是一个Java类,它表示一个JSON格式的对象。JSON是一种轻量级的数据交换格式,通常用于Web应用程序之间的数据传输。JSONObject对象提供了许多方法,可以将Java对象转换为JSON格式的字符串,或者将JSON格式的字符串转换为Java对象,从而方便地进行数据交换。
步骤S332,在转换成JSONObject对象后,根据所述流量数据的所述请求头字符串的应用ID查询对应的请求头模板,并根据所述请求头模板将请求头绑定到所述请求报文所针对的接口;
步骤S333,封装所述接口组件对象和所述案例对象信息并存入所述数据库,更新所述数据库中的案例组件关联表;
步骤S334,获取所述流量信息对应的响应报文信息,转为可验证断言格式,并存入所述数据库,得到所述无码测试案例。
具体的,在拿到请求头requestHeader字符串,转换成JSONObject后,进行封装接口组件对象并入库;新增无码案例。封装案例对象基本信息并入库,更新案例组件关联表;拿到流量的response信息,针对不同类型的报文进行处理,处理后的报文全部转为json格式,再对报文进行层级树解析且封装成assert格式,最后进行入库操作,一套完整的从接口到案例的生成操作完成。
上述步骤实现了将流量数据的请求头字符串和相关信息绑定到请求报文所针对的接口上,并存储在数据库中。例如,该步骤可以包括以下几个步骤:
(1)获取流量数据的请求头字符串并转换成JSONObject对象;
(2)根据请求头字符串的应用ID查询对应的请求头模板,并根据请求头模板将请求头绑定到请求报文所针对的接口上;
(3)封装接口组件对象和案例对象信息并存入数据库,更新案例组件关联表;
(4)获取流量信息对应的响应报文信息,转为可验证断言格式,并存入数据库。
例如,在实际使用中,服务端会获取流量数据的请求头字符串并转换成JSONObject对象,并根据请求头字符串的应用ID查询对应的请求头模板,将请求头绑定到请求报文所针对的接口上。然后,服务端会封装接口组件对象和案例对象信息,并存入数据库,并更新案例组件关联表。最后,服务端会获取流量信息对应的响应报文信息,将其转为可验证断言格式,并存入数据库。这样可以快速构建测试案例和测试数据,提高测试效率和准确性。
总之,上述步骤实现了将流量数据的请求头字符串和相关信息绑定到请求报文所针对的接口上,并存储在数据库中。通过将请求头字符串和相关信息与请求报文绑定,可以快速构建测试案例和测试数据,并提高测试效率和准确性。该技术实现了快速构建测试案例和测试数据,提高测试效率和准确性;根据请求头字符串查询对应的请求头模板,避免手动编写请求头的繁琐工作;将接口组件对象和案例对象信息封装成一个对象,更加灵活方便。
进一步的,参考图9,所述步骤S332,根据所述流量数据的所述请求头字符串的应用ID查询对应的请求头模板,包括:
步骤S3321,判断所述数据库中是否存在于所述应用ID对应的请求头模板;
步骤S3322,若存在,则将所述数据库中的请求头模板作为所述应用ID的请求头模板;
步骤S3323,若不存在,则封装请求头实体对象,并更新所述数据库。
上述步骤中,在拿到请求头requestHeader字符串,转换成JSONObject对象,根据应用id查询DB中对应的请求头,一个应用对应只有一个DOOM来源的请求头模板;如若已经存在,则跳过;如不存在,则封装请求头实体对象,更新数据库。
步骤S332进行了将生成的无码测试案例存储在redis缓存和服务端数据库中。其中,可以进行如下步骤:(1)将生成的测试案例存储在redis缓存中;(2)将测试案例信息保存到服务端数据库中;(3)根据接口key删除redis缓存中旧的测试案例,并更新数据库记录。
例如,在实际使用中,服务端会将生成的无码测试案例存储在redis缓存和服务端数据库中。然后,服务端会根据接口key删除redis缓存中旧的测试案例,并更新数据库记录。这样可以避免重复存储测试案例,管理测试数据,并提高测试效率和准确性。
上述步骤实现了将生成的无码测试案例存储在redis缓存和服务端数据库中。通过将测试案例存储在redis缓存和服务端数据库中,可以管理测试数据,并提高测试效率和准确性。该技术实现了管理测试数据,避免重复存储测试案例;提高测试效率和准确性,方便测试人员进行测试;通过删除redis缓存中旧的测试案例并更新数据库记录,保证测试结果的可靠性。
总之,这些步骤共同构成了一种基于流量数据的无码测试案例生成方法和系统。该方法采用了多种技术手段,包括使用redis缓存优化测试数据的获取和更新、根据请求报文的接口属性去重复处理流量数据、将流量数据的请求头字符串和相关信息绑定到请求报文所针对的接口上并存储在数据库中等,提高了测试效率和准确性,降低了测试成本和维护难度。
此外,参考图10,本实施例还提供一种无码测试案例生成装置,包括:
获取模块10,用于服务端获取DOOM平台的流量数据;
解析模块20,用于所述服务端对所述流量数据进行解析,得到带有接口key的流量信息;
生成模块30,用于所述服务端根据所述带有接口key的流量信息生成所述无码测试案例。
此外,本实施例还提供一种无码测试案例生成系统,包括存储器以及处理器,所述存储器存储有无码测试案例生成程序,所述处理器运行所述无码测试案例生成程序以使所述无码测试案例生成系统执行如上述所述的无码测试案例生成方法。
此外,本实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有无码测试案例生成程序,所述无码测试案例生成程序被处理器执行时实现如上述所述无码测试案例生成方法。
总之,本发明实现了从编写到执行全自动智能生成案例,进而可通过daily build进行执行监测,能够做到即时监控;流量数据基于业务真实测试场景的数据,能够更加有效验证业务逻辑;并且能够实现测试人员无需理解掌握业务逻辑即可直接使用测试用例,避免了现有的方法中效率低下、测试质量不高、难以理解业务场景、对专业技能需求较高、人为错误较多的问题,为金融机构系统的测试和维护带来了方便。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (11)

1.一种无码测试案例生成方法,其特征在于,包括:
服务端获取DOOM平台的流量数据;
所述服务端对所述流量数据进行解析,得到带有接口key的流量信息;
所述服务端根据所述带有接口key的流量信息生成所述无码测试案例。
2.如权利要求1所述无码测试案例生成方法,其特征在于,所述服务端获取DOOM平台的流量数据,包括:
在所述DOOM平台上启动流量获取工具;
在发生应用操作时,通过所述流量获取工具拦截操作产生的流量数据,并将所述流量数据发送至所述服务端。
3.如权利要求1所述无码测试案例生成方法,其特征在于,所述服务端对所述流量数据进行解析,得到带有接口key的流量信息,包括:
所述服务端对所述流量数据进行解析,确定所述流量数据所对应的目标接口,并生成与所述流量数据对应的接口key;
根据所述服务端的redis缓存对所述接口key的流量数据进行筛选,并存入所述redis缓存,得到带有接口key的流量信息。
4.如权利要求3所述无码测试案例生成方法,其特征在于,所述根据所述服务端的redis缓存对所述接口key的流量数据进行筛选,并存入所述redis缓存,得到带有接口key的流量信息,包括:
判断所述redis缓存中是否存在与所述接口key对应的接口信息;
若所述redis缓存中存在与所述接口key对应的接口信息,则利用与所述接口信息相匹配的所述接口key的流量数据更新所述服务端的数据库中的记录信息;
若所述redis缓存中不存在与所述接口key对应的接口信息,则判定所述接口key与所述接口信息不同,生成一条新的数据,并存入所述redis缓存,并同步更新所述数据库中的记录信息;
其中,所述记录信息中包括所述带有接口key的流量信息。
5.如权利要求1所述无码测试案例生成方法,其特征在于,所述服务端根据所述带有接口key的流量信息生成所述无码测试案例,包括:
所述服务端定时获取数据库中的带有接口key的所述流量数据;
根据所获取所述流量数据的接口属性进行与所述流量数据的请求报文的接口去重复处理;
在所述接口去重复处理后,将所述流量数据的请求头字符串和接口组件对象、案例对象信息绑定到所述请求报文所针对的接口,返回可验证断言格式,并存入所述数据库,得到所述无码测试案例。
6.如权利要求5所述无码测试案例生成方法,其特征在于,所述根据所获取所述流量数据的接口属性进行与所述流量数据的请求报文的接口去重复处理,包括:
根据所述流量数据的接口名称和接口路径生成对应的接口属性;
根据所述流量数据的接口URL判断是否存在与所述流量数据的请求报文所请求的目标接口相同的请求信息;
若存在,则获取所述接口URL对应的目标接口的接口列表,并获取所述流量数据的所述请求报文的字段属性;
判断所述接口列表中是否存在于所述请求报文的接口key一致的接口;
若是,则更新所述流量数据的所述接口URL对应的目标接口的接口信息;
若否,则封闭所述接口信息,并在所述流量数据的所述接口属性中绑定当前的应用执行环境,且将所述接口信息入库。
7.如权利要求5所述无码测试案例生成方法,其特征在于,所述在所述接口去重复处理后,将所述流量数据的请求头字符串和接口组件对象、案例对象信息绑定到所述请求报文所针对的接口,返回可验证断言格式,并存入所述数据库,得到所述无码测试案例,包括:
获取所述流量数据的请求头字符串并转换成JSONObject对象;
在转换成JSONObject对象后,根据所述流量数据的所述请求头字符串的应用ID查询对应的请求头模板,并根据所述请求头模板将请求头绑定到所述请求报文所针对的接口;
封装所述接口组件对象和所述案例对象信息并存入所述数据库,更新所述数据库中的案例组件关联表;
获取所述流量信息对应的响应报文信息,转为可验证断言格式,并存入所述数据库,得到所述无码测试案例。
8.如权利要求7所述无码测试案例生成方法,其特征在于,所述根据所述流量数据的所述请求头字符串的应用ID查询对应的请求头模板,包括:
判断所述数据库中是否存在于所述应用ID对应的请求头模板;
若存在,则将所述数据库中的请求头模板作为所述应用ID的请求头模板;
若不存在,则封装请求头实体对象,并更新所述数据库。
9.一种无码测试案例生成装置,其特征在于,包括:
获取模块,用于服务端获取DOOM平台的流量数据;
解析模块,用于所述服务端对所述流量数据进行解析,得到带有接口key的流量信息;
生成模块,用于所述服务端根据所述带有接口key的流量信息生成所述无码测试案例。
10.一种无码测试案例生成系统,其特征在于,包括存储器以及处理器,所述存储器中存储有无码测试案例生成程序,所述处理器运行所述无码测试案例生成程序以使所述无码测试案例生成系统执行如权利要求1-8任一项所述的无码测试案例生成方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有无码测试案例生成程序,所述无码测试案例生成程序被处理器执行时实现如权利要求1-8任一项所述的无码测试案例生成方法。
CN202310780775.4A 2023-06-28 2023-06-28 一种无码测试案例生成方法、装置、系统及存储介质 Pending CN116662204A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310780775.4A CN116662204A (zh) 2023-06-28 2023-06-28 一种无码测试案例生成方法、装置、系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310780775.4A CN116662204A (zh) 2023-06-28 2023-06-28 一种无码测试案例生成方法、装置、系统及存储介质

Publications (1)

Publication Number Publication Date
CN116662204A true CN116662204A (zh) 2023-08-29

Family

ID=87722460

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310780775.4A Pending CN116662204A (zh) 2023-06-28 2023-06-28 一种无码测试案例生成方法、装置、系统及存储介质

Country Status (1)

Country Link
CN (1) CN116662204A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117130941A (zh) * 2023-10-24 2023-11-28 易方信息科技股份有限公司 基于浏览器插件的接口自动化方法、系统、设备及介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117130941A (zh) * 2023-10-24 2023-11-28 易方信息科技股份有限公司 基于浏览器插件的接口自动化方法、系统、设备及介质
CN117130941B (zh) * 2023-10-24 2024-03-26 易方信息科技股份有限公司 基于浏览器插件的接口自动化方法、系统、设备及介质

Similar Documents

Publication Publication Date Title
CN111522922B (zh) 日志信息查询方法、装置、存储介质及计算机设备
US20040111727A1 (en) Automatic context management for web applications with client side code execution
CN107957940B (zh) 一种测试日志处理方法、系统及终端
CN101131747A (zh) 捕获和/或分析客户端的Web页面事件的方法、装置及系统
CN108920364A (zh) 软件缺陷定位方法、装置、终端及计算机可读存储介质
CN106407078B (zh) 基于信息交互的客户端性能监控装置及方法
CN111367760B (zh) 日志采集方法及装置、计算机设备、存储介质
CN111782635B (zh) 数据处理方法和装置、存储介质和电子装置
CN113658591B (zh) 一种面向智能家居的语音交互适配系统
CN106776318A (zh) 一种测试脚本录制方法及系统
CN116662204A (zh) 一种无码测试案例生成方法、装置、系统及存储介质
CN106713011B (zh) 一种获取测试数据的方法与系统
CN108960587A (zh) 置业顾问服务质量的评价方法、装置及可读存储介质
CN117155832B (zh) 用于udp传输协议的多端无侵入录制回放测试方法及系统
CN107704369A (zh) 一种操作日志的记录方法、电子设备、存储介质、系统
CN111367812A (zh) 测试方法、电子设备及可读存储介质
CN113392005A (zh) 大文件处理测试方法及系统
CN116719750B (zh) 软件测试方法及装置、服务器设备和存储介质
KR20220060429A (ko) 원격지의 네트워크 스위치에 대한 로그 수집 시스템 및 이의 빅데이터 구축 방법
CN112416762A (zh) Api测试方法及装置、设备、计算机可读存储介质
CN116521552A (zh) 一种测试缺陷的获取方法、装置、设备及可读存储介质
CN113742408B (zh) 基于Protobuf协议动态解析的数据交互方法
CN1963771A (zh) 开放式测试资料收集系统及方法
CN114546825A (zh) 故障追踪系统、方法、电子设备及可读介质
CN112817859A (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