CN113282499A - 创建测试数据的方法、***、设备及介质 - Google Patents
创建测试数据的方法、***、设备及介质 Download PDFInfo
- Publication number
- CN113282499A CN113282499A CN202110606332.4A CN202110606332A CN113282499A CN 113282499 A CN113282499 A CN 113282499A CN 202110606332 A CN202110606332 A CN 202110606332A CN 113282499 A CN113282499 A CN 113282499A
- Authority
- CN
- China
- Prior art keywords
- interface
- parameters
- message body
- function
- key
- 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.)
- Granted
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 233
- 238000000034 method Methods 0.000 title claims abstract description 104
- 230000006870 function Effects 0.000 claims abstract description 147
- 238000012544 monitoring process Methods 0.000 claims description 25
- 230000003993 interaction Effects 0.000 claims description 13
- 230000001960 triggered effect Effects 0.000 claims description 10
- 238000004458 analytical method Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 4
- 238000011144 upstream manufacturing Methods 0.000 abstract description 15
- 230000008571 general function Effects 0.000 abstract description 2
- 230000007547 defect Effects 0.000 abstract 2
- 230000008569 process Effects 0.000 description 60
- 238000012549 training Methods 0.000 description 22
- 238000012545 processing Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 11
- 230000000694 effects Effects 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 9
- 238000010276 construction Methods 0.000 description 8
- 230000001419 dependent effect Effects 0.000 description 8
- 238000012795 verification Methods 0.000 description 6
- 230000006399 behavior Effects 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000001755 vocal effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000009960 carding Methods 0.000 description 2
- 230000004069 differentiation Effects 0.000 description 2
- 238000004573 interface analysis Methods 0.000 description 2
- 230000003137 locomotive effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 210000001520 comb Anatomy 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明属于测试领域,特别适用于***接口测试。针对现有测试通用功能模块需要上下游数据作为测试而需要对新增接口获得对方的数据或流程再由己方创建,而业务不熟悉会影响数据创建,效率低等缺陷,提出了本发明的创建测试数据的方法、***、设备及介质,旨在通过对内部功能增加接口所传入的参数确定关键参数和非关键参数,为非关键参数提供预设默认值并为关键参数提供修正的特定值,进而生成测试数据,并且,通过对外部功能增加消息订阅功能即补发消息体进行监控,为该消息体提供修正的特定值,定时监控确定第三方节点触发则利用其特定值生成测试数据。从而解决了如何实现通用化高效创建测试数据的技术问题。
Description
技术领域
本发明属于测试技术领域,特别适用于接口测试,更具体的是涉及创建测试数据的方法、***、设备及介质。
背景技术
现有技术中,在测试通用功能模块时,需要使用上游或者关联业务的数据作为测试数据,这类测试数据一般是由需要进行测试的增加新接口的对方给出测试数据或者对方提供业务功能流程文档,再由己方创建测试数据,若对业务不熟悉则容易导致数据创建层层阻碍,严重影响工作效率。
因而,需要改进现有的接口测试数据的创建方式,实现通用化的测试数据创建,适应更多的接口增改测试,并提升测试效率、无需对业务本身有过多的熟悉需求、方便高效。
发明内容
(一)要解决的技术问题
本发明旨在解决如何实现通用化高效创建测试数据的技术问题;进一步,解决了如何基于消息订阅实现便捷高效地创建测试数据而提升业务测试效率的技术问题。
(二)技术方案
为解决上述技术问题,本发明的一方面提出一种创建测试数据的方法,包括:对待测***的接口所传入的参数确定关键参数和非关键参数;为所述非关键参数统一预设默认值并为所述关键参数修正特定值;根据接口对应的所述参数的特定值和所述非关键参数的默认值,和/或根据监控到的经补发的消息体所触发的节点,创建测试待测***的测试数据。
根据本发明的优选实施方式,对待测***的接口所传入的参数确定关键参数和非关键参数之前,还包括:分析待测***的流程链路,以区分待测***的内部功能和外部功能;如果是内部功能,则根据默认值函数经接口模板库和/或界面交互,创建初始化接口;如果外部功能,则基于消息订阅,对应所述外部功能指示的待测***所依赖的外部***,创建初始化消息体。
根据本发明的优选实施方式,所述创建初始化消息体,包括:对应所述外部***增加的服务,通过界面交互选择构建相应的消息主题号,并根据默认值和消息体库选择对应的消息体并补发所述消息体。
根据本发明的优选实施方式,对应所述外部***增加的服务,通过界面交互选择构建相应的消息主题号,并根据默认值和消息体库选择对应的消息体并补发所述消息体,具体包括:对选择的对应的消息体通过随机函数进行修改以取得特定值;定时或实时监控补发的所述消息体,以确定对应第三方***的外部功能的节点触发。
根据本发明的优选实施方式,对待测***的接口所传入的参数确定关键参数和非关键参数,具体包括:基于所述待测***中与内部功能相应的内部业务以及与外部功能对应的所述待测***所依赖的外部***的外部业务,通过代码扫描方式取得参数;将取得的参数结合对待测***的业务分析,确定接口所传入的一个或多个参数中,能够实质影响业务规则的响应结果的参数为关键参数、不能够实质影响业务规则的参数为非关键参数。
根据本发明的优选实施方式,为所述非关键参数统一预设默认值并为所述关键参数修正特定值,具体包括:根据默认值函数基于接口模板和随机生成器,生成非关键参数在创建所述接口时的预设默认值;基于所述预设默认值,根据随机函数以及界面交互,对关键参数在创建所述接口时提供的预设默认进行修正获得修改后的特定值。
根据本发明的优选实施方式,根据接口对应的所述参数的特定值和所述非关键参数的默认值,和/或根据监控到的经补发的消息体所触发的节点,创建测试待测***的测试数据,具体包括:根据所述待测***的接口中对应的关键参数的特定值和非关键参数的默认值,生成测试数据,发送接口请求;和/或,根据监控所述消息体,获得所述待测***所依赖的外部***触发的待测***的流程链路上的节点对应的消息体的特定值,生成测试数据。
为解决上述技术问题,本发明的二方面提出一种创建测试数据的***,包括:区分模块,用于对待测***的接口所传入的参数确定关键参数和非关键参数;设置模块,用于为所述非关键参数统一预设默认值并为所述关键参数修正特定值;创建模块,用于根据接口对应的所述参数的特定值和所述非关键参数的默认值,和/或根据监控到的经补发的消息体所触发的节点,创建测试待测***的测试数据。
本发明第三方面提出一种电子设备,包括处理器和存储器,所述存储器用于存储计算机可执行程序,当所述计算机程序被所述处理器执行时,所述处理器执行所述第一方面的方法。
本发明第四方面还提出一种计算机可读存储介质,存储有计算机可执行程序,所述计算机可执行程序被执行时,实现所述第一方面的方法。
(三)有益效果
本发明通过梳理业务接口,确定接口中必传参数的传值对业务不存在实质影响,可以实现增加接口功能,以在创建初始接口时即给予非关键参数预设默认值,并对其关键参数通过随机函数修正得到特定值(比如唯一值这类关键参数),因而只需要对关键参数的数值进行调整和键入,无需对业务进行具体熟悉,即可创建有价值有效的上游测试数据。高效快捷且简单方便。
进一步本发明通过建立支持发送消息体的功能/消息订阅功能,对第三方相关业务不需要真实熟悉和运行流程,只需要创建初始消息体(默认值),修正特定值并补发该消息体后,监听双方约定该消息体,在触发节点逻辑时根据该消息体来创建测试数据。同样,高效快捷且简单方便。
附图说明
图1是根据本发明的创建测试数据的方法的一个实施例的主要流程图;
图2是根据本发明的创建测试数据的***的一个实施例的主要结构框图;
图3是根据本发明的技术方案的一个实施例的实现功能原理的示意图;
图4是根据本发明的电子设备的一个实施例的主要结构示框图;
图5是根据本发明的更具体的一个电子设备的一个实施例的主要结构示意图;
图6是根据本发明的计算机可读存储介质的一个实施例的主要结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。
在对于具体实施例的介绍过程中,对结构、性能、效果或者其他特征的细节描述是为了使本领域的技术人员对实施例能够充分理解。但是,并不排除本领域技术人员可以在特定情况下,以不含有上述结构、性能、效果或者其他特征的技术方案来实施本发明。
附图中的流程图仅是一种示例性的流程演示,不代表本发明的方案中必须包括流程图中的所有的内容、操作和步骤,也不代表必须按照图中所显示的的顺序执行。例如,流程图中有的操作/步骤可以分解,有的操作/步骤可以合并或部分合并,等等,在不脱离本发明的发明主旨的情况下,流程图中显示的执行顺序可以根据实际情况改变。
附图中的框图一般表示的是功能实体,并不一定必然与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理单元装置和/或微控制器装置中实现这些功能实体。
各附图中相同的附图标记表示相同或类似的元件、组件或部分,因而下文中可能省略了对相同或类似的元件、组件或部分的重复描述。还应理解,虽然本文中可能使用第一、第二、第三等表示编号的定语来描述各种器件、元件、组件或部分,但是这些器件、元件、组件或部分不应受这些定语的限制。也就是说,这些定语仅是用来将一者与另一者区分。例如,第一器件亦可称为第二器件,但不偏离本发明实质的技术方案。此外,术语“和/或”、“及/或”是指包括所列出项目中的任一个或多个的所有组合。
为解决上述技术问题,本发明提出一种创建测试数据的方案。该方案主要是基于消息订阅的通用化创建测试数据的方案。具体一个实施例中,创建测试数据的方法主要包括:S1、对增加的接口所传入的参数确定关键参数和非关键参数,对增加的服务选择消息体并补发所述消息体;S2、为非关键参数预设默认值(例如创建的接口或消息体的默认值函数),并为关键参数修正特定值(例如随机函数);S3、基于接口对应的关键参数的特定值和非关键参数的默认值,以及/或者基于补发所述消息体经监控所获取的数据,创建待测***整体流程所需的测试数据。
其中,基于接口和消息订阅,先通过给接口或消息体预设默认值、再修正特定值,能够快速构建接口和发送消息体获得相应节点的参数值。该默认值可以通过默认值函数预设,修正特定值可以通过随机函数实现;函数中可以封装特定参数的构建函数,同时支持二次开发。
下面对本发明的一个实施例中会涉及的名词进行解释和/或说明:
“基于消息订阅”:测试的时候,不走依赖方(第三方非待测***)的实际业务流程,只需要通过补发消息体来到达业务节点,为待测***提供需要依赖方的业务节点(上下游)的参数。
“通用化”:在测试中,通过消息体本身的注册和消费方式能支持不同地业务方(第三方)接入;而消息体支持键入,同时也支持选择默认消息体,支持为各个key选择默认value值,支持一键键入多个默认value等。
“消息”:消息主题号+消息体,可以按照实际需要构建。
【实施例1】
下面结合图1所示本发明的方法的一个实施例的主要步骤流程图进行说明。
在步骤S110,对待测***的接口所传入的参数确定关键参数和非关键参数,以及,对待测***所依赖的外部的服务选择以补发消息体且监控消息到达情况来触发衔接待测***的功能业务流程。
一个实施方式中,创建测试数据的工具实际是一个应用程序APP或者说软件、平台。以软件为例,其可以是一个开发好的程序,可以用于对于接口进行快速构建。进一步,其可以至少包括待测***内部功能接口构造部分和待测***所依赖的第三方业务的消息监控功能部分(外部)或者说上、下游节点,以快速完成待测***的功能验证。
一个实施方式中,本发明的方法可以先对需要创建测试数据的待测***可能会涉及的接口进行梳理。
梳理接口例如:可以通过获取对应的接口文档后,基于对业务的熟悉(经验)对接口进行***范围判断(例如可以是:***内部/内部功能,还是***外部/依赖的外部功能或外部***等),此处主要结合人工判断方式,通过人工的业务经验进行区分。进一步,可以从待测***的功能流程中分析出主流程接口链路,此处可以涉及待测***的内部功能(如内部业务)和外部功能(如待测***所依赖的外部业务)。
一个实施方式中,如果是针对与待测***相关的待测***的内部功能,则可以通过添加成接口方式来快速实现功能验证,通过调用本发明的创建测试数据的应用程序APP中已开发好的接口模板,创建初始化接口,由此增加接口。
进一步,可以在开发程序时提供一个可视化的web页面,测试人员可以直观的得到一个初步(初始化/默认)的接口。
一个实施方式中,如果是针对待测***的外部功能即待测***依赖的外部功能,则可以构建对应的消息主题号,选择预设的消息体模板,这样可得到一个初步(初始化/默认)的消息体。这样可以通过发送消息体触发节点逻辑与监控消息体得到传入的参数。
一个实施方式中,基于待测***的业务流程及业务数据,可以根据传入的参数(以下均简称传参)在业务中的影响面进行判断,以确定传参值待测***的功能有无实质影响。而参数的影响面主要是通过人工方式+代码扫描方式去判断。具体地,基于待测***涉及到的具体场景、具体业务流程和具体业务数据,可以通过人工和/或代码扫描方式获得,例如可以结合人工和代码扫描的方式,以获得传参,取得传参值。一个例子:代码扫描可以借助已有的代码扫描工具对代码接口进行扫描,从而取到传参,并结合传参的必选填属性、参数唯一性以及输出参数(简称出参)用于其他接口的程度(参数引用程度),生成一份详细的接口分析结果报告,再通过人工分析出哪些参数是关键参数,哪些参数是可以预设置为非关键性参数。关键性的衡量指标是需要看具体的业务实现,业务不一样,参数的关键性也不一样,因而结合人工分析去判断更准确有效。
确定关键性参数的例子比如:
对于一个提交线索的接口,传入的参数有:活动id、推荐人id、推荐人姓名、被推荐人姓名、被推荐人id、城市、创建时间和更新时间。通过对业务的分析,构建此接口,推荐人姓名、被推荐人姓名、城市、创建时间和更新时间的影响面很小,但是活动id、推荐人id和被推荐人id对于后续的流程是非常关键的。因此,接口的关键参数是活动id、被推荐人id和被推荐人id,非关键参数是推荐人姓名、被推荐人姓名、城市、创建时间和更新时间。
对于通过消息订阅如发送外部***业务功能消息体进行消息体侦听,一个需要职业培训***(第三方/外部、上游/下游节点)走到已认证节点来触发待测***内部到达已认证收益节点,创建生成雇佣订单这样的测试场景。分析来看,职业培训***的已认证流程超级长,如果真正去操作这个流程,耗费时长,且如果职业培训***进行功能迭代,那么还需要增加去熟悉和实际执行迭代功能实现,这样增加了没必要的测试成本。而本发明的一个实施方式中则可以通过为待测***所依赖的外部***设置消息主题号来监控已认证状态。例如:根据模板/消息体库来创建消息体,补发消息体快速到达已认证状态(即可以基于消息订阅来侦听获得需要的节点的参数)。
一个应用的例子:假定一个接口需要传入30多个参数,通过分析哪些传入参数对于响应结果是决定性的,例如一个生佣规则(业务规则)的提交接口,包含了规则名称、规则描述、规则生效时间、规则失效时间,推荐业务类型名称、推荐人类型、规则有效期、规则城市、规则时间、规则节点、规则新老标识、规则的提交状态、规则的节点描述、规则节点金额配置、规则节点的适用人群、规则子项的返佣类型、返佣类型、返佣的新老配置、不返佣的推荐业务类型、不返佣的推荐人类型、规则节点的生效时间、失效时间、规则节点是否按周期结算、规则节点按月结算、按自然日结算、是否二级结算、二级结算不返佣身份,二级结算的金额,二级节点的生效时间和失效时间等。而在如此众多的传参中,根据业务分析,可以确定关键性的参数实际上只有推荐业务类型、推荐人类型、生效时间和失效时间。因此,可以确定通过接口传入的这几个参数是真正影响规则的使用的,其余都是非关键性参数,对于后续的流程并没有产生过多的影响,只是为了保证规则的完整性。
一个实施方式中,创建的测试数据是待测***涉及的整体的业务流程的测试数据。其中,在这里面可以包含***内部功能相关的流程和***外部的相关流程,比如:需要验证线索的状态是否准确,就需要去提交线索,从而需要调用提交线索的接口来创建线索数据,这样才能获取到线索的状态,而提交线索就属于创建测试数据的过程。再比如:现在需要到达职业培训的已认证收益节点,但是职业培训***不是测试的***,而是待测***的外部***、或者说依赖的第三方,虽然可以实际走已认证的流程来到达,但是太耗时耗成本和资源,那么通过提交消息主题号补发消息体来到达,例如从消息体库中根据消息主题号提供对应的消息体(默认值),并修改特定值,补发消息体方式来到达,这样就可以快速到达,提高效率。
通过构建接口数据和补发消息体即基于接口创建和消息订阅,这两者能够有效辅助测试待测***的功能的测试手段。
可见,本发明的该实施例中,对待测***的内部业务,通过已有模板根据相应的业务场景创建或者说增加需要的接口,对待测***的外部业务(依赖的第三方***等)创建消息体,并通过代码扫描和人工判断相结合方式确定传入的一个或多个参数是否为关键性参数。由此缩小创建测试数据的范围,对关键性参数进行测试数据。
在步骤S120,对所述非关键参数预设统一默认值,并为关键参数键入与业务测试相关的值。
一个实施方式中,将非关键参数预设统一的默认值,例如调用默认值函数,可以基于接口模板和随机生成器生成随机的值。比如:一个提交线索的非关键性参数有推荐人姓名、被推荐人姓名、城市、创建时间和更新时间。推荐人姓名和被推荐人姓名是字符串形式,它可以是任务字符,不支持幂等,那么可以直接固定,例如可以设置为一个预设的固定的字符,比如张三、李四等,其对于待测***本身并无任何影响;而城市属于一个表库编码,对于业务流程来说可以设置为哪个城市都没有影响,例如可以设置为一个预设的固定的城市;创建时间和更新时间,可以直接取现在的时间,等等。
一个应用的例子,可以在接口模板中都有设置,与创建测试数据的人员交互的界面上,可以通过下拉框、各种菜单等方式提供的选择类型,就可以给这些不影响待测***整体的参数,设置默认值。比如推荐人姓名和被推荐人姓名,选择字符类型,那么可以调用程序的字符类型默认值程序,直接回显出一个默认的字符。再比如城市,选择城市类型,会调用城市默认值程序,城市就有了一个默认的城市编码。等等。
一个实施方式中,对于关键性参数,其是影响接口的重要参数,因而,可以在此处对其进行修改处理,修改的时候可以包括但不限于:手动修改、调用预设的一个或多个函数来辅助生成等方式。比如推荐一个月嫂成为商家,身份证是关键性参数,支持幂等和实名认证,那么不能随便进行键入一个字符,此处需要选择身份证类型,然后可以调用对应程序的身份证随机生成器(随机函数),这样可以快速得到一个关键性参数(传参值)。
进一步,参数的相关性包括该参数的部分特定的逻辑,不容易生成,可以是生活中的一些特定的参数,比如身份证号码,比如微信的openid,比如经营许可证等等,或者是本身***的特定值,***内约定的一些id,键入错误就命中不了,而这些也是需要进行处理的,在随机函数中支持连接数据库,通过键入sql查询语句可查出对应的数据作为参数。这样可以保证传入的参数准确性。
进一步,某些标识参数,如唯一值,这类关键性参数是不支持幂等,不需要重复,比如接口中的注册接口,需要传入不重复的手机号,也就是手机号必须是唯一的,不能重复。随机函数引入,在生成和查询数据过程中,能够快速去重、快速构建一些特定的值。
另外,关键性参数一定有唯一性,而非关键性参数不一定有唯一性。比如创建时间,其可能是唯一的,但是其在很多待测***的内部业务中,为非关键性参数。
可见,本发明在该实施例中,通过区分关键参数和非关键参数后,在创建接口或消息体时给予预设默认值(例如可以通过默认值函数赋予值)、再通过修正关键参数的特定值(例如可以通过随机函数修正),从而实现对非关键参数随机预设统一默认值,而对关键参数通过随机函数生成和/或交互界面键入获得修正的特定值(例如得到待测***测试可以使用的唯一值),无需测试人员大量耗费时间构造过多的业务数据。
在步骤S130,根据所述关键参数的所述值和所述非关键参数的所述默认值,和/或,根据监听预设的消息体中的值,创建测试数据。
一个实施方式中,创建测试数据的工具实际是一个开发好的应用程序APP或者说软件、平台,可以用于对于接口进行快速构建。进一步,其可以至少包括待测***内部功能接口构造部分和待测***所依赖的第三方业务的消息监控功能部分(外部),以快速完成待测***的功能验证。
一个实施方式中,从待测***的功能流程中分析出主流程接口链路,确定/区分待测***的内部功能(如内部业务)和外部功能(如外部业务)。
进一步,如前述区分关键参数和非关键参数过程中,如果是针对待测***的内部功能,则可以添加成接口,调用该***本身开发好的接口模板,创建初始化接口,由此增加接口,并且,还可以在开发程序时提供一个可视化的web页面,测试人员可以直观的得到一个初步(初始化/默认)的接口。
进一步,如前述区分关键和非关键参数的过程中,如果是针对待测***的外部功能,则可以构建消息主题号,选择预设的消息体模板,创建得到一个初步(初始化/默认)的消息体。
一个实施方式中,基于待测***的业务及业务数据,可以根据传入的参数(简称传参)在业务中的影响面进行判断,确定传参值有无实质影响。而参数的影响面主要是人工+代码扫描去判断。具体地,基于待测***具体涉及到场景、业务和业务数据,可以通过人工和/或代码扫描方式获得,例如可以结合人工和代码扫描的方式,以获得传参,取得传参值,参见前述确定关键参数的过程。关键性的衡量指标是需要看具体的业务实现,业务不一样,参数的关键性也不一样,因而结合人工分析去判断更有效。这里,对待测***的接口包括增加的接口,确定了通过其传入的参数是否为关键性参数或非关键性参数,在前面已做了说明。
承前述区分为***内部功能、提交线索的一个内部接口的例子:传入的参数中,确定了接口传入的关键参数是活动id、被推荐人id和被推荐人id,非关键参数是推荐人姓名、被推荐人姓名、城市、创建时间和更新时间。
承前述区分为***外部功能、一个需要职业培训***(外部***非待测***)业务流程走到已认证节点来触发待测***内部到达已认证收益节点,而创建生成雇佣订单这样的测试场景,不必如提交线索方式,而可以通过设置消息主题号来监控已认证状态,避免职业培训***的已认证流程超级长、无需执行该流程导致耗费过多时长、也不必由于职业培训***进行功能迭代而增加测试成本等。
一个实施方式中,根据前述创建接口和消息体、确定传参的关键或非关键性,可以为非关键参数统一预设默认值而为关键参数通过交互和/或随机函数修改特定值,比如生成业务测试相关的值等,为待测***涉及的整体业务流程,根据节点逻辑状况,创建需要的测试数据。
进一步,创建的测试数据,包括内部功能一些相关流程所创建的接口涉及的参数的数据外,还包括***外部/外部功能的一些相关流程的数据。
具体比如:要验证线索的状态是否准确,就需要去提交线索(内部),从而需要调用提交线索的接口来创建线索数据(即接口传参),这样才能获取到线索的状态,而提交线索就是创建测试数据。
又再比如:现在需要到达职业培训的已认证收益节点,而职业培训***不是测试的***、属于待测***大的外部***、或者说第三方,虽然可以实际走已认证的流程来到达,但是太耗时耗成本和资源,那么通过创建或者说提交消息主题号以补发消息体来到达,则可以快速到达,提高效率。
由此,对于***内部来说,可以通过构建接口数据,而对于***外部来说,可以通过监控(侦听)第三方***消息体获得数据,从而得到更完善的验证待测***功能的测试数据,通过这两者之间有效辅助提供数据而测试待测***的功能。该创建测试数据的过程不被非关键或者说对***变化无影响的参数的设置、修改以及整体流程包括涉及的外部流程都全部要求数据等影响测试数据的创建。
一个实施方式中,在测试期间,获得外部测试数据,比如一个职业培训的已认证收益节点状态监控MQ:在程序中选择发送MQ消息,键入消息主题号名称,进行保存,在消息体的服务中新增了一个消费方,然后选择预设的消息体,消息体的预设就像收货地址一样,可以提前预设好,例如以key-value的Json字符串形式,预设的消息体中可以键入key,value需要选择类型,则得到了默认值;接着,需要修改特定值,特定值的设置和上面的接口的特定值设置是调用的同一个随机函数库,可以通过交互界面,选择对应的函数快速生成特定值后,点击补发按钮发送消息体,发送完消息体之后,会对消息体进行保存,下次还可以继续调用;然后,在消息体发送成功之后,通过监控消息体,就可以查询到是否到达收益节点。从而,比实际取走业务方的流程更有效率。
可见,本发明的该实施例对待测***内外区分,通过接口传参的区分设置和构造数据、以及结合监控外部的消息体方式获得关联节点位置的数据,从而能够高效、准确地创建测试数据,无需对待测***的业务环境、业务数据花费过多的学习和熟悉,能够基于消息订阅和接口创建,对任何一个改变或未改变的待测***的功能都能创建测试数据加以验证,即实现了基于消息订阅的通用化的测试数据的创建。
由此,本发明的提供的创建测试数据的技术方案,能够拓展应用到更多的业务场景和领域,而不必对测试数据创建人员有过多的业务经验的要求,是通用化的简单高效的数据创建方案,尤其对于***外部的第三方来说,只需要监控其消息体(即基于消息订阅)得到上游或下游节点的测试数据,进一步简化了测试数据获得的方式,无需去将第三方的流程执行完而获得与***外部功能相关的数据,即直接利用,进一步提升了***测试数据的创建效率。
进一步,本发明能够通过给接口或者消息体预设默认值,再通过随机函数修正特定值来快速构建接口和发送消息体。默认值函数和随机函数是核心,里面封装了一些特定参数的构建函数,同时支持二次开发。
【实施例2】
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明的***实现作进一步的详细说明。
本发明的一个实施例中,基于堡垒机的用户行为监控***主要包括规则模块,用于预设判断规则;分析模块,用于基于堡垒机日志的实时数据流中当前用户行为依据判断规则进行数据分析以预测是否为异常行为;处理模块,用于用户行为异常时报警。
这里,将结合图2所示本发明的***的一个实施例的主要结构框图进行说明。在本实施例中,该***至少包括区分模块110,设置模块120,创建模块130。
区分模块110,用于对待测***的接口所传入的参数确定关键参数和非关键参数。
设置模块120,用于对所述非关键参数预设统一默认值,并为关键参数键入与业务测试相关的值。
创建模块130,用于根据所述关键参数的所述值和所述非关键参数的所述默认值,和/或,根据监听预设的消息体中的值,创建测试数据。
区分模块110,具体地,对待测***的接口所传入的参数确定关键参数和非关键参数,以及,对待测***所依赖的外部的服务选择以补发消息体且监控消息到达情况来触发衔接待测***的功能业务流程。
一个实施方式中,创建测试数据的工具实际是一个应用程序APP或者说软件、平台。以软件为例,其可以是一个开发好的程序,可以用于对于接口进行快速构建。进一步,其可以至少包括待测***内部功能接口构造部分和待测***所依赖的第三方业务的消息监控功能部分(外部)或者说上、下游节点,以快速完成待测***的功能验证。
一个实施方式中,本发明的方法可以先对需要创建测试数据的待测***可能会涉及的接口进行梳理。
梳理接口例如:可以通过获取对应的接口文档后,基于对业务的熟悉(经验)对接口进行***范围判断(例如可以是:***内部/内部功能,还是***外部/依赖的外部功能或外部***等),此处主要结合人工判断方式,通过人工的业务经验进行区分。进一步,可以从待测***的功能流程中分析出主流程接口链路,此处可以涉及待测***的内部功能(如内部业务)和外部功能(如待测***所依赖的外部业务)。
一个实施方式中,如果是针对与待测***相关的待测***的内部功能,则可以通过添加成接口方式来快速实现功能验证,通过调用本发明的创建测试数据的应用程序APP中已开发好的接口模板,创建初始化接口,由此增加接口。
进一步,可以在开发程序时提供一个可视化的web页面,测试人员可以直观的得到一个初步(初始化/默认)的接口。
一个实施方式中,如果是针对待测***的外部功能即待测***依赖的外部功能,则可以构建对应的消息主题号,选择预设的消息体模板,这样可得到一个初步(初始化/默认)的消息体。这样可以通过发送消息体触发节点逻辑与监控消息体得到传入的参数。
一个实施方式中,基于待测***的业务流程及业务数据,可以根据传入的参数(以下均简称传参)在业务中的影响面进行判断,以确定传参值待测***的功能有无实质影响。而参数的影响面主要是通过人工方式+代码扫描方式去判断。具体地,基于待测***涉及到的具体场景、具体业务流程和具体业务数据,可以通过人工和/或代码扫描方式获得,例如可以结合人工和代码扫描的方式,以获得传参,取得传参值。一个例子:代码扫描可以借助已有的代码扫描工具对代码接口进行扫描,从而取到传参,并结合传参的必选填属性、参数唯一性以及输出参数(简称出参)用于其他接口的程度(参数引用程度),生成一份详细的接口分析结果报告,再通过人工分析出哪些参数是关键参数,哪些参数是可以预设置为非关键性参数。关键性的衡量指标是需要看具体的业务实现,业务不一样,参数的关键性也不一样,因而结合人工分析去判断更准确有效。
确定关键性参数的例子比如:
对于一个提交线索的接口,传入的参数有:活动id、推荐人id、推荐人姓名、被推荐人姓名、被推荐人id、城市、创建时间和更新时间。通过对业务的分析,构建此接口,推荐人姓名、被推荐人姓名、城市、创建时间和更新时间的影响面很小,但是活动id、推荐人id和被推荐人id对于后续的流程是非常关键的。因此,接口的关键参数是活动id、被推荐人id和被推荐人id,非关键参数是推荐人姓名、被推荐人姓名、城市、创建时间和更新时间。
对于通过消息订阅如发送外部***业务功能消息体进行消息体侦听,一个需要职业培训***(第三方/外部、上游/下游节点)走到已认证节点来触发待测***内部到达已认证收益节点,创建生成雇佣订单这样的测试场景。分析来看,职业培训***的已认证流程超级长,如果真正去操作这个流程,耗费时长,且如果职业培训***进行功能迭代,那么还需要增加去熟悉和实际执行迭代功能实现,这样增加了没必要的测试成本。而本发明的一个实施方式中则可以通过为待测***所依赖的外部***设置消息主题号来监控已认证状态。例如:根据模板/消息体库来创建消息体,补发消息体快速到达已认证状态(即可以基于消息订阅来侦听获得需要的节点的参数)。
一个应用的例子:假定一个接口需要传入30多个参数,通过分析哪些传入参数对于响应结果是决定性的,例如一个生佣规则的提交接口,包含了规则名称、规则描述、规则生效时间、规则失效时间,推荐业务类型名称、推荐人类型、规则有效期、规则城市、规则时间、规则节点、规则新老标识、规则的提交状态、规则的节点描述、规则节点金额配置、规则节点的适用人群、规则子项的返佣类型、返佣类型、返佣的新老配置、不返佣的推荐业务类型、不返佣的推荐人类型、规则节点的生效时间、失效时间、规则节点是否按周期结算、规则节点按月结算、按自然日结算、是否二级结算、二级结算不返佣身份,二级结算的金额,二级节点的生效时间和失效时间等。而在如此众多的传参中,根据业务分析,可以确定关键性的参数实际上只有推荐业务类型、推荐人类型、生效时间和失效时间。因此,可以确定通过接口传入的这几个参数是真正影响规则的使用的,其余都是非关键性参数,对于后续的流程并没有产生过多的影响,只是为了保证规则的完整性。
一个实施方式中,创建的测试数据是待测***涉及的整体的业务流程的测试数据。其中,在这里面可以包含***内部功能相关的流程和***外部的相关流程,比如:需要验证线索的状态是否准确,就需要去提交线索,从而需要调用提交线索的接口来创建线索数据,这样才能获取到线索的状态,而提交线索就属于创建测试数据的过程。再比如:现在需要到达职业培训的已认证收益节点,但是职业培训***不是测试的***,而是待测***的外部***、或者说依赖的第三方,虽然可以实际走已认证的流程来到达,但是太耗时耗成本和资源,那么通过提交消息主题号补发消息体来到达,例如从消息体库中根据消息主题号提供对应的消息体(默认值),并修改特定值,补发消息体方式来到达,这样就可以快速到达,提高效率。
通过构建接口数据和补发消息体即基于接口创建和消息订阅,这两者能够有效辅助测试待测***的功能的测试手段。
可见,本发明的该实施例中,对待测***的内部业务,通过已有模板根据相应的业务场景创建或者说增加需要的接口,对待测***的外部业务(依赖的第三方***等)创建消息体,并通过代码扫描和人工判断相结合方式确定传入的一个或多个参数是否为关键性参数。由此缩小创建测试数据的范围,对关键性参数进行测试数据。
设置模块120,具体地,一个实施方式中,将非关键参数预设统一的默认值,例如调用默认值函数,可以基于接口模板和随机生成器生成随机的值。比如:一个提交线索的非关键性参数有推荐人姓名、被推荐人姓名、城市、创建时间和更新时间。推荐人姓名和被推荐人姓名是字符串形式,它可以是任务字符,不支持幂等,那么可以直接固定,例如可以设置为一个预设的固定的字符,比如张三、李四等,其对于待测***本身并无任何影响;而城市属于一个表库编码,对于业务流程来说可以设置为哪个城市都没有影响,例如可以设置为一个预设的固定的城市;创建时间和更新时间,可以直接取现在的时间,等等。
一个应用的例子,可以在接口模板中都有设置,与创建测试数据的人员交互的界面上,可以通过下拉框、各种菜单等方式提供的选择类型,就可以给这些不影响待测***整体的参数,设置默认值。比如推荐人姓名和被推荐人姓名,选择字符类型,那么可以调用程序的字符类型默认值程序,直接回显出一个默认的字符。再比如城市,选择城市类型,会调用城市默认值程序,城市就有了一个默认的城市编码。等等。
一个实施方式中,对于关键性参数,其是影响接口的重要参数,因而,可以在此处对其进行修改处理,修改的时候可以包括但不限于:手动修改、调用预设的一个或多个函数来辅助生成等方式。比如推荐一个月嫂成为商家,身份证是关键性参数,支持幂等和实名认证,那么不能随便进行键入一个字符,此处需要选择身份证类型,然后可以调用对应程序的身份证随机生成器(随机函数),这样可以快速得到一个关键性参数(传参值)。
进一步,参数的相关性包括该参数的部分特定的逻辑,不容易生成,可以是生活中的一些特定的参数,比如身份证号码,比如微信的openid,比如经营许可证等等,或者是本身***的特定值,***内约定的一些id,键入错误就命中不了,而这些也是需要进行处理的,在随机函数中支持连接数据库,通过键入sql查询语句可查出对应的数据作为参数。这样可以保证传入的参数准确性。
进一步,某些标识参数,如唯一值,这类关键性参数是不支持幂等,不需要重复,比如接口中的注册接口,需要传入不重复的手机号,也就是手机号必须是唯一的,不能重复。随机函数引入,在生成和查询数据过程中,能够快速去重、快速构建一些特定的值。
另外,关键性参数一定有唯一性,而非关键性参数不一定有唯一性。比如创建时间,其可能是唯一的,但是其在很多待测***的内部业务中,为非关键性参数。
可见,本发明在该实施例中,通过区分关键参数和非关键参数后,在创建接口或消息体时给予预设默认值(例如可以通过默认值函数赋予值)、再通过修正关键参数的特定值(例如可以通过随机函数修正),从而实现对非关键参数随机预设统一默认值,而对关键参数通过随机函数生成和/或交互界面键入获得修正的特定值(例如得到待测***测试可以使用的唯一值),无需测试人员大量耗费时间构造过多的业务数据。
创建模块130,具体地,一个实施方式中,创建测试数据的工具实际是一个开发好的应用程序APP或者说软件、平台,可以用于对于接口进行快速构建。进一步,其可以至少包括待测***内部功能接口构造部分和待测***所依赖的第三方业务的消息监控功能部分(外部),以快速完成待测***的功能验证。
一个实施方式中,从待测***的功能流程中分析出主流程接口链路,确定/区分待测***的内部功能(如内部业务)和外部功能(如外部业务)。
进一步,如前述区分关键参数和非关键参数过程中,如果是针对待测***的内部功能,则可以添加成接口,调用该***本身开发好的接口模板,创建初始化接口,由此增加接口,并且,还可以在开发程序时提供一个可视化的web页面,测试人员可以直观的得到一个初步(初始化/默认)的接口。
进一步,如前述区分关键和非关键参数的过程中,如果是针对待测***的外部功能,则可以构建消息主题号,选择预设的消息体模板,创建得到一个初步(初始化/默认)的消息体。
一个实施方式中,基于待测***的业务及业务数据,可以根据传入的参数(简称传参)在业务中的影响面进行判断,确定传参值有无实质影响。而参数的影响面主要是人工+代码扫描去判断。具体地,基于待测***具体涉及到场景、业务和业务数据,可以通过人工和/或代码扫描方式获得,例如可以结合人工和代码扫描的方式,以获得传参,取得传参值,参见前述确定关键参数的过程。关键性的衡量指标是需要看具体的业务实现,业务不一样,参数的关键性也不一样,因而结合人工分析去判断更有效。这里,对待测***的接口包括增加的接口,确定了通过其传入的参数是否为关键性参数或非关键性参数,在前面已做了说明。
承前述区分为***内部功能、提交线索的一个内部接口的例子:传入的参数中,确定了接口传入的关键参数是活动id、被推荐人id和被推荐人id,非关键参数是推荐人姓名、被推荐人姓名、城市、创建时间和更新时间。
承前述区分为***外部功能、一个需要职业培训***(外部***非待测***)业务流程走到已认证节点来触发待测***内部到达已认证收益节点,而创建生成雇佣订单这样的测试场景,不必如提交线索方式,而可以通过设置消息主题号来监控已认证状态,避免职业培训***的已认证流程超级长、无需执行该流程导致耗费过多时长、也不必由于职业培训***进行功能迭代而增加测试成本等。
一个实施方式中,根据前述创建接口和消息体、确定传参的关键或非关键性,可以为非关键参数统一预设默认值而为关键参数通过交互和/或随机函数修改特定值,比如生成业务测试相关的值等,为待测***涉及的整体业务流程,根据节点逻辑状况,创建需要的测试数据。
进一步,创建的测试数据,包括内部功能一些相关流程所创建的接口涉及的参数的数据外,还包括***外部/外部功能的一些相关流程的数据。
具体比如:要验证线索的状态是否准确,就需要去提交线索(内部),从而需要调用提交线索的接口来创建线索数据(即接口传参),这样才能获取到线索的状态,而提交线索就是创建测试数据。
又再比如:现在需要到达职业培训的已认证收益节点,而职业培训***不是测试的***、属于待测***大的外部***、或者说第三方,虽然可以实际走已认证的流程来到达,但是太耗时耗成本和资源,那么通过创建或者说提交消息主题号以补发消息体来到达,则可以快速到达,提高效率。
由此,对于***内部来说,可以通过构建接口数据,而对于***外部来说,可以通过监控(侦听)第三方***消息体获得数据,从而得到更完善的验证待测***功能的测试数据,通过这两者之间有效辅助提供数据而测试待测***的功能。该创建测试数据的过程不被非关键或者说对***变化无影响的参数的设置、修改以及整体流程包括涉及的外部流程都全部要求数据等影响测试数据的创建。
一个实施方式中,在测试期间,获得外部测试数据,比如一个职业培训的已认证收益节点状态监控MQ:在程序中选择发送MQ消息,键入消息主题号名称,进行保存,在消息体的服务中新增了一个消费方,然后选择预设的消息体,消息体的预设就像收货地址一样,可以提前预设好,例如以key-value的Json字符串形式,预设的消息体中可以键入key,value需要选择类型,则得到了默认值;接着,需要修改特定值,特定值的设置和上面的接口的特定值设置是调用的同一个随机函数库,可以通过交互界面,选择对应的函数快速生成特定值后,点击补发按钮发送消息体,发送完消息体之后,会对消息体进行保存,下次还可以继续调用;然后,在消息体发送成功之后,通过监控消息体,就可以查询到是否到达收益节点。从而,比实际取走业务方的流程更有效率。这样,可以支持发送消息体功能,对于相关业务不需要真实去走业务流程来创建测试数据,可通过监听双方约定的消息体来创建测试数据。
可见,本发明的该实施例。通过给接口预设默认值快速创建上游业务测试数据,同时通过监听相关业务方的消息体来创建测试数据,高效快捷。其对待测***内外区分,通过接口传参的区分设置和构造数据、以及结合监控外部的消息体方式获得关联节点位置的数据,从而能够高效、准确地创建测试数据,无需对待测***的业务环境、业务数据花费过多的学习和熟悉,能够基于消息订阅和接口创建,对任何一个改变或未改变的待测***的功能都能创建测试数据加以验证,即实现了基于消息订阅的通用化的测试数据的创建。
由此,本发明的提供的创建测试数据的技术方案,能够拓展应用到更多的业务场景和领域,而不必对测试数据创建人员有过多的业务经验的要求,是通用化的简单高效的数据创建方案,尤其对于***外部的第三方来说,只需要监控其消息体(即基于消息订阅)得到上游或下游节点的测试数据,进一步简化了测试数据获得的方式,无需去将第三方的流程执行完而获得与***外部功能相关的数据,即直接利用,进一步提升了***测试数据的创建效率。
进一步,本发明能够通过给接口或者消息体预设默认值,再通过随机函数修正特定值来快速构建接口和发送消息体。默认值函数和随机函数是核心,里面封装了一些特定参数的构建函数,同时支持二次开发。
【实施例3】
一个合作商主要是通过创建测试数据的人员利用该创建测试数据的方法,应用在接口创建测试数据的具体场景的例子中:
对于待测***内的功能:新增10个接口,有30多个传入参数;找到这些传入参数中的关键参数,比如有一个或多个关键参数,为关键参数键入与业务相关的值;将其他非关键参数进行预设默认值处理即预设为统一的默认值;而对于唯一值,引入随机函数。这样,创建测试数据的人员只需要键入关键参数然后点击提交表单即可创建好该合作商测试数据,即测试需要的上游或关联业务的数据。
对于待测***外的功能:则可以增设发送消息体功能,对于相关业务不需要真实去走业务流程来创建测试数据,而通过监听双方约定的消息体即可创建测试数据。
由此,通过给接口预设默认值而能够快速创建上游业务测试数据,和/或通过给消息体预设默认值并监听该相关业务方的消息体监控节点逻辑,从而快速到达节点、快速创建测试数据,高效便捷。
下面参考图3所示一个应用的功能示意图,对本发明的方案的前述实施例1、2的实现的具体应用进行进一步描述。
待测***的整个运行流程中,会有内部功能部分310与外部功能部分320。根据待测***实际应用场景的业务逻辑,对于内部功能,尤其是新增的内部功能,测试时需要获得内部测试数据,可以根据接口模板库可以创建相应的初始化接口(预设了统一的默认值),并且,基于该待测***实际应用的业务场景,区分该接口传参中哪些属于关键参数、哪些属于非关键参数,通过随机函数生成器和/或界面交互,对关键参数进行特定值修改,从而构造接口测试数据,发送接口请求进行测试、成功返回接口结果后进入下一个接口的测试;而对于外部功能,通过发送消息体获得外部测试数据,可以先选择发送消息体,键入消息主题号名称并保存,从而在消息体的服务中新增了一个消费方,然后从消息体库中选择预设的消息体,即得到一初始化消息体,其也预设了默认值(例如添加key和value的默认值),通过随机函数生成器和/或界面交互,对预设的默认值进行修改,修改需要的为特定值,然后补发消息体,发送完后保存消息体以备后续调用,发送成功后监控消息体,触发节点逻辑即查询到是否达到收益节点,获得测试数据。
本发明的实施例的具体方案中,提供了这类基于消息订阅的通用化创建测试数据的高效工具(软件/程序/平台),在测试通用功能模块过程中,需要使用上游或者关联业务的数据作为测试数据时,不必再由对方(第三方)给出测试数据,或者对方提供业务功能流程文档等、也无需对业务很不熟悉。本发明的方案,主要通过对业务接口进行梳理,很多必传参数的传值对业务没什么实质影响,可以设置为默认值。并且,通过添加接口功能,接口传入参数可预设默认值,比如,一个合作商新增接口,有30多个传入参数,除了几个关键的参数,其他的参数可以预设为统一的默认值)、对于唯一值,引入随机函数,因而只要键入关键参数即可。然后点击提交表单,一个合作商测试数据很轻松就创建好了。进一步,还通过其支持发送消息体功能,对于相关业务不需要真实去走业务流程来创建测试数据,可通过监听双方约定的消息体来创建测试数据。总的来说,本发明通过给接口预设默认值而能够快速创建上游业务测试数据,同时通过监听相关业务方的消息体来创建测试数据,高效快捷。由此,可以简单快捷迅速地对任何不太熟悉业务的待测***,都能获得内部功能和外部功能的有效测试数据。
【实施例4】
图4是根据本发明的一个实施例的电子设备的结构示意框图,该电子设备包括处理器和存储器,所述存储器用于存储计算机可执行程序,当所述计算机程序被所述处理器执行时,所述处理器执行如前述实施例1中的题目识别方法。
如图4所示,电子设备以通用计算设备的形式表现。其中处理器可以是一个,也可以是多个并且协同工作。本发明也不排除进行分布式处理,即处理器可以分散在不同的实体设备中。本发明的电子设备并不限于单一实体,也可以是多个实体设备的总和。
所述存储器存储有计算机可执行程序,通常是机器可读的代码。所述计算机可读程序可以被所述处理器执行,以使得电子设备能够执行本发明的方法,或者方法中的至少部分步骤。
所述存储器包括易失性存储器,例如随机存取存储单元(RAM)和/或高速缓存存储单元,还可以是非易失性存储器,如只读存储单元(ROM)。
可选的,该实施例中,电子设备还包括有I/O接口,其用于电子设备与外部的设备进行数据交换。I/O接口可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
更具体地,参见图5所示的该实施例所述的电子设备的更具体的一个例子的结构框图。该示例性实施例的电子设备200以通用数据处理设备的形式表现。电子设备200的组件可以包括但不限于:至少一个处理单元210、至少一个存储单元220、连接不同***组件(包括存储单元220和处理单元210)的总线230、显示单元240等。
其中,所述存储单元220存储有计算机可读程序,其可以是源程序或都只读程序的代码。所述程序可以被处理单元210执行,使得所述处理单元210执行本发明各种实施方式的步骤。例如,所述处理单元210可以执行前述实施例2至5的方法的各个步骤。
所述存储单元220可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)2201和/或高速缓存存储单元2202,还可以进一步包括只读存储单元(ROM)2203。所述存储单元220还可以包括具有一组(至少一个)程序模块2205的程序/实用工具2204,这样的程序模块2205包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线230可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备200也可以与一个或多个外部设备300(例如键盘、显示器、网络设备、蓝牙设备等)通信,使得用户能经由这些外部设备300与该电子设备200交互,和/或使得该电子设备200能与一个或多个其它数据处理设备(例如路由器、调制解调器等等)进行通信。这种通信可以通过输入/输出(I/O)接口250进行,还可以通过网络适配器260与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)进行。网络适配器260可以通过总线230与电子设备200的其它模块通信。应当明白,尽管图中未示出,电子设备200中可使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
应当理解,图4、5显示的电子设备仅仅是本发明的一个示例,本发明的电子设备中还可以包括上述示例中未示出的元件或组件。例如,有些电子设备中还包括有显示屏等显示单元,有些电子设备还包括人机交互元件,例如按扭、键盘等。只要该电子设备能够执行存储器中的计算机可读程序以实现本发明方法或方法的至少部分步骤,均可认为是本发明所涵盖的电子设备。
【实施例5】
图6是本发明的一个实施例的计算机可读记录介质的示意图。如图6所示,计算机可读记录介质中存储有计算机可执行程序,所述计算机可执行程序被执行时,实现本发明上述的题目识别方法。所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
通过以上对实施方式的描述,本领域的技术人员易于理解,本发明可以由能够执行特定计算机程序的硬件来实现,例如本发明的***,以及***中包含的电子处理单元、服务器、客户端、手机、控制单元、处理器等,本发明也可以由包含上述***或部件的至少一部分的车辆来实现。本发明也可以由执行本发明的方法的计算机软件来实现,例如由机车端的微处理器、电子控制单元,客户端、服务器端等执行的控制软件来实现。但需要说明的是,执行本发明的方法的计算机软件并不限于由一个或特定个的硬件实体中执行,其也可以是由不特定具体硬件的以分布式的方式来实现,例如计算机程序执行的某些方法步骤可以在机车端执行,另一部分可以在移动终端或智能头盔等中执行。对于计算机软件,软件产品可以存储在一个计算机可读的存储介质(可以是CD-ROM,U盘,移动硬盘等)中,也可以分布式存储于网络上,只要其能使得电子设备执行根据本发明的方法。
通过以上对实施方式的描述,本领域的技术人员易于理解,本发明本发明描述的示例性实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,本发明不与任何特定计算机、虚拟装置或者电子设备固有相关,各种通用装置也可以实现本发明。以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种创建测试数据的方法,其特征在于,包括:
对待测***的接口所传入的参数确定关键参数和非关键参数;
为所述非关键参数统一预设默认值并为所述关键参数修正特定值;
根据接口对应的所述参数的特定值和所述非关键参数的默认值,和/或根据监控到的经补发的消息体所触发的节点,创建测试待测***的测试数据。
2.根据权利要求1所述的方法,其特征在于,对待测***的接口所传入的参数确定关键参数和非关键参数之前,还包括:
分析待测***的流程链路,以区分待测***的内部功能和外部功能;
如果是内部功能,则根据默认值函数经接口模板库和/或界面交互,创建初始化接口;
如果外部功能,则基于消息订阅,对应所述外部功能指示的待测***所依赖的外部***,创建初始化消息体。
3.根据权利要求2所述的方法,其特征在于,所述创建初始化消息体,包括:
对应所述外部***增加的服务,通过界面交互选择构建相应的消息主题号,并根据默认值和消息体库选择对应的消息体并补发所述消息体。
4.根据权利要求2所述的方法,其特征在于,对应所述外部***增加的服务,通过界面交互选择构建相应的消息主题号,并根据默认值和消息体库选择对应的消息体并补发所述消息体,具体包括:
对选择的对应的消息体通过随机函数进行修改以取得特定值;
定时或实时监控补发的所述消息体,以确定对应第三方***的外部功能的节点触发。
5.根据权利要求1至4中任一项所述的方法,其特征在于,对待测***的接口所传入的参数确定关键参数和非关键参数,具体包括:
基于所述待测***中与内部功能相应的内部业务以及与外部功能对应的所述待测***所依赖的外部***的外部业务,通过代码扫描方式取得参数;
将取得的参数结合对待测***的业务分析,确定接口所传入的一个或多个参数中,能够实质影响业务规则的响应结果的参数为关键参数、不能够实质影响业务规则的参数为非关键参数。
6.根据权利要求1至5中任一项所述的方法,其特征在于,为所述非关键参数统一预设默认值并为所述关键参数修正特定值,具体包括:
根据默认值函数基于接口模板和随机生成器,生成非关键参数在创建所述接口时的预设默认值;
基于所述预设默认值,根据随机函数以及界面交互,对关键参数在创建所述接口时提供的预设默认进行修正获得修改后的特定值。
7.根据权利要求1至6中任一项所述的方法,其特征在于,根据接口对应的所述参数的特定值和所述非关键参数的默认值,和/或根据监控到的经补发的消息体所触发的节点,创建测试待测***的测试数据,具体包括:
根据所述待测***的接口中对应的关键参数的特定值和非关键参数的默认值,生成测试数据,发送接口请求;
和/或,
根据监控所述消息体,获得所述待测***所依赖的外部***触发的待测***的流程链路上的节点对应的消息体的特定值,生成测试数据。
8.一种创建测试数据的***,其特征在于,包括:
区分模块,用于对待测***的接口所传入的参数确定关键参数和非关键参数;
设置模块,用于为所述非关键参数统一预设默认值并为所述关键参数修正特定值;
创建模块,用于根据接口对应的所述参数的特定值和所述非关键参数的默认值,和/或根据监控到的经补发的消息体所触发的节点,创建测试待测***的测试数据。
9.一种电子设备,包括处理器和存储器,所述存储器用于存储计算机可执行程序,其特征在于:
当所述计算机程序被所述处理器执行时,所述处理器执行如权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,存储有计算机可执行程序,其特征在于,所述计算机可执行程序被执行时,实现如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110606332.4A CN113282499B (zh) | 2021-05-31 | 2021-05-31 | 创建测试数据的方法、***、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110606332.4A CN113282499B (zh) | 2021-05-31 | 2021-05-31 | 创建测试数据的方法、***、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113282499A true CN113282499A (zh) | 2021-08-20 |
CN113282499B CN113282499B (zh) | 2024-02-09 |
Family
ID=77282889
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110606332.4A Active CN113282499B (zh) | 2021-05-31 | 2021-05-31 | 创建测试数据的方法、***、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113282499B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090319832A1 (en) * | 2008-06-23 | 2009-12-24 | International Business Machines Corporation | Method and apparatus of effective functional test data generation for web service testing |
CN107122297A (zh) * | 2017-04-18 | 2017-09-01 | 上海雷腾软件股份有限公司 | 用于测试接口的请求消息生成的方法及设备 |
US20180089072A1 (en) * | 2016-09-23 | 2018-03-29 | International Business Machines Corporation | Automated testing of application program interface |
CN108563569A (zh) * | 2018-04-11 | 2018-09-21 | 中国电子科技集团公司第十四研究所 | 一种预警探测***自动化接口测试方法 |
CN109558525A (zh) * | 2018-12-12 | 2019-04-02 | 北京锐安科技有限公司 | 一种测试数据集的生成方法、装置、设备和存储介质 |
CN109918300A (zh) * | 2019-02-27 | 2019-06-21 | 苏州浪潮智能科技有限公司 | 一种测试数据准备方法、装置、终端及存储介质 |
CN110347590A (zh) * | 2019-06-18 | 2019-10-18 | 平安普惠企业管理有限公司 | 业务***的接口测试控制方法及装置 |
CN110597714A (zh) * | 2019-08-28 | 2019-12-20 | 深圳市彬讯科技有限公司 | kafka消息的测试方法、装置、计算机设备及存储介质 |
US20200065228A1 (en) * | 2018-08-23 | 2020-02-27 | International Business Machines Corporation | Function-message oriented test case generation for supporting continuous globalization verification testing |
CN110888797A (zh) * | 2019-10-11 | 2020-03-17 | 平安信托有限责任公司 | 测试数据生成方法、装置、计算机设备及存储介质 |
CN111221735A (zh) * | 2020-01-08 | 2020-06-02 | 福建博思软件股份有限公司 | 一种用于自动生成业务交互测试脚本的*** |
CN112162915A (zh) * | 2020-08-27 | 2021-01-01 | 杭州大搜车汽车服务有限公司 | 一种测试数据生成方法、装置、设备及存储介质 |
CN112579446A (zh) * | 2020-12-10 | 2021-03-30 | 北京软通智慧城市科技有限公司 | 一种接口测试方法、装置、电子设备和存储介质 |
CN112817853A (zh) * | 2021-01-30 | 2021-05-18 | 北京奇保信安科技有限公司 | 一种自动测试方法、***和电子设备 |
-
2021
- 2021-05-31 CN CN202110606332.4A patent/CN113282499B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090319832A1 (en) * | 2008-06-23 | 2009-12-24 | International Business Machines Corporation | Method and apparatus of effective functional test data generation for web service testing |
US20180089072A1 (en) * | 2016-09-23 | 2018-03-29 | International Business Machines Corporation | Automated testing of application program interface |
CN107122297A (zh) * | 2017-04-18 | 2017-09-01 | 上海雷腾软件股份有限公司 | 用于测试接口的请求消息生成的方法及设备 |
CN108563569A (zh) * | 2018-04-11 | 2018-09-21 | 中国电子科技集团公司第十四研究所 | 一种预警探测***自动化接口测试方法 |
US20200065228A1 (en) * | 2018-08-23 | 2020-02-27 | International Business Machines Corporation | Function-message oriented test case generation for supporting continuous globalization verification testing |
CN109558525A (zh) * | 2018-12-12 | 2019-04-02 | 北京锐安科技有限公司 | 一种测试数据集的生成方法、装置、设备和存储介质 |
CN109918300A (zh) * | 2019-02-27 | 2019-06-21 | 苏州浪潮智能科技有限公司 | 一种测试数据准备方法、装置、终端及存储介质 |
CN110347590A (zh) * | 2019-06-18 | 2019-10-18 | 平安普惠企业管理有限公司 | 业务***的接口测试控制方法及装置 |
CN110597714A (zh) * | 2019-08-28 | 2019-12-20 | 深圳市彬讯科技有限公司 | kafka消息的测试方法、装置、计算机设备及存储介质 |
CN110888797A (zh) * | 2019-10-11 | 2020-03-17 | 平安信托有限责任公司 | 测试数据生成方法、装置、计算机设备及存储介质 |
CN111221735A (zh) * | 2020-01-08 | 2020-06-02 | 福建博思软件股份有限公司 | 一种用于自动生成业务交互测试脚本的*** |
CN112162915A (zh) * | 2020-08-27 | 2021-01-01 | 杭州大搜车汽车服务有限公司 | 一种测试数据生成方法、装置、设备及存储介质 |
CN112579446A (zh) * | 2020-12-10 | 2021-03-30 | 北京软通智慧城市科技有限公司 | 一种接口测试方法、装置、电子设备和存储介质 |
CN112817853A (zh) * | 2021-01-30 | 2021-05-18 | 北京奇保信安科技有限公司 | 一种自动测试方法、***和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113282499B (zh) | 2024-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200242015A1 (en) | Automated test case management systems and methods | |
US8745590B2 (en) | Testing an application | |
KR100945282B1 (ko) | 관리 소프트웨어 구현을 위한 인증 방법 | |
JP2005501325A (ja) | ネットワーク型コンピュータデバイスのコンフィギュレーション情報を遠隔的に問い合わせて、安全に測定し、かつ安全に伝達する方法 | |
US8849981B2 (en) | Response time benchmarking | |
US11362912B2 (en) | Support ticket platform for improving network infrastructures | |
CN110659206A (zh) | 基于微服务的模拟架构建立方法、装置、介质及电子设备 | |
US20190138433A1 (en) | Evaluation of library test suites using mutation testing | |
WO2022100075A1 (zh) | 性能检测方法、装置、电子设备和计算机可读介质 | |
CN111694743A (zh) | 业务***的检测方法及装置 | |
KR102226463B1 (ko) | 프로세스자동화프로그램과 연동되는 ui/ux솔루션제공서버, 이를 포함하는 프로세스자동화시스템, 이를 이용한 프로세스자동화방법, 및 이를 실행하기 위한 컴퓨터 프로그램 | |
CN112540924A (zh) | 接口自动化测试方法、装置、设备及存储介质 | |
US20210390010A1 (en) | Software Application Diagnostic Aid | |
US20210073676A1 (en) | Model improvement support system | |
CN113360376A (zh) | 埋点测试方法和装置 | |
CN105955838A (zh) | 一种***死机的原因查看方法及装置 | |
CN112181485B (zh) | 脚本执行方法、装置、电子设备及存储介质 | |
CN112560025A (zh) | 一种接口的权限检测方法、装置、介质及电子设备 | |
CN112015715A (zh) | 工业互联网数据管理服务测试方法及*** | |
CN108494589B (zh) | 一种分布式Nginx服务器的管理方法和*** | |
CN113468001A (zh) | 一种接口处理逻辑的测试方法及装置 | |
CN113282499A (zh) | 创建测试数据的方法、***、设备及介质 | |
CN111984543B (zh) | 指令测试方法、装置及*** | |
CN114116448A (zh) | 应用程序的压力测试方法、装置、存储介质及计算机设备 | |
CN113157584A (zh) | 一种基于HttpClient的模糊测试方法 |
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 |