一种基于JMeter的断言方法及装置与流程

文档序号:27034147发布日期:2021-10-24 06:10阅读:149来源:国知局
一种基于JMeter的断言方法及装置与流程
一种基于jmeter的断言方法及装置
技术领域
1.本技术属于计算机技术领域,具体涉及一种基于jmeter的断言方法及装置。


背景技术:

2.在日常使用中,响应断言存在使用相对简单但不够灵活的问题,而beanshell方式却灵活有余而易用性不足。尤其是beanshell断言所要求的的编码能力,对于大部分测试人员来说无异于噩梦。结合以上两种方式的优点后,在使用jmeter进行脚本断言时可以兼顾到编码水平不同的测试人员,更加易用友好。jmeter自带多种断言方式,供用户设置预期结果以验证接口调用的正确性,提高了产品研发效率。通常情况,用户在进行脚本调试过程中会采用如下方式:
3.1.响应断言。提供了对服务器接口返回结果中多种类型字段的校验,如响应文本,响应代码,响应信息等。同时,也提供了多种模式匹配规则以满足各种场景下的检查方式,如包括,相等等。
4.2.beanshell断言。通过beanshell脚本执行响应结果检查,实现更加复杂的个性化需求,灵活行高,功能强大。
5.3.json断言。可以实现对json格式响应结果断言。
6.jmeter自带断言方式有其存在的几个弊端:
7.一.响应断言不灵活:由于已设置固定模式,响应断言单次只能选择一种测试字段检查,扩展性不够。
8.二.beanshell断言不易用:需要掌握beanshell脚本,但对于大部分测试人员来说,编码能力是天然弱点。
9.三.局限性:对于响应结果的格式有一定限制,如json断言只有在返回结果为json格式时适用,不一而足。
10.四.学习成本高:一方面对于不同类型的响应结果,jmeter分别提供了针对性的断言方式,使得工具的可用行更好,另一方面又带来了巨大的测试工具学习成本。
11.基于以上,如何设计出一种同时支持多种响应格式的断言方法是亟待解决的问题。


技术实现要素:

12.为至少在一定程度上克服相关技术中存在的问题,本技术提供一种基于jmeter的断言方法及系统,支持多种响应格式的断言有助于提升研发效率。为实现以上目的,本技术采用如下技术方案:
13.一方面,一种基于jmeter的断言方法,包括:
14.获取前置接口类型,根据所述接口类型获取相应的响应参数;
15.根据所述前置接口类型以及响应参数设置检查条件,发送所述检查条件至服务器;
16.接收所述服务器根据所述检查条件返回的响应信息;
17.根据所述响应信息判断所述前置接口调用状态;
18.根据所述接口调用状态对断言部分的预期结果字段进行检查判断,输出断言结果。
19.进一步地,所述根据所述接口调用状态对断言部分的预期结果字段进行检查判断,输出断言结果,包括:
20.若所述预期结果字段不存在,则断言失败,则输出断言异常结果;
21.若所述预期结果字段存在,则继续检查判断所述字段对应的关键值;
22.若所述关键值不存在,则断言失败,输出断言异常结果;
23.若所述关键值存在,则输出断言成功结果。
24.进一步地,还包括:
25.在根据所述接口调用状态对断言部分的预期结果字段进行检查判断的时,
26.将断言部分的字段与关键值加亮展示在展示区。
27.进一步地,还包括:设置与所述检查条件互斥的检查项作为断言结果。
28.进一步地,所述接口类型包括pre_url接口、pre_field接口、pre_rule接口以及pre_value接口。
29.进一步地,所述检查条件包括:响应代码、响应信息、响应格式以及响应文本。
30.进一步地,当所述响应信息格式为ext、json、xml、html或xpath格式时,对响应类型和字段类型判断后分别进行处理。
31.进一步地,对所述前置接口进行调试,包括:
32.若为单个接口,则默认当前接口类型为url;
33.若为多个接口组成的线程组,则获取用户输入的对应接口类或url。
34.另一方面,一种基于jmeter的断言装置,所述装置包括:
35.获取模块,用于获取前置接口类型,根据所述接口类型获取相应的响应参数;
36.设置检查条件模块,用于根据所述前置接口类型以及响应参数设置检查条件,发送所述检查条件至服务器;
37.接收响应信息模块,用于接收所述服务器根据所述检查条件返回的响应信息;
38.判断模块,用于根据所述响应信息判断所述前置接口调用状态;
39.输出断言结果模块,用于根据所述接口调用状态对断言部分的预期结果字段进行检查判断,输出断言结果。
40.本技术采用以上技术方案,至少具备以下有益效果:
41.一种基于jmeter的断言方法,通过获取前置接口类型,根据接口类型获取相应的响应参数;根据前置接口类型以及响应参数设置检查条件,发送检查条件至服务器;接收服务器根据检查条件返回的响应信息;根据响应信息判断前置接口调用状态;根据接口调用状态对断言部分的预期结果字段进行检查判断,输出断言结果。同时支持json,xml,xpath等响应格式的方法,兼顾到断言方式的易用与灵活的设计模式,提高了产品研发效率。
42.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
43.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
44.图1是根据一示例性实施例示出的一种基于jmeter的断言方法流程示意图。
45.图2是根据一示例性实施例示出的一种基于jmeter的断言装置结构示意图。
46.图3是根据一示例性实施例示出的一种基于jmeter的断言装置操作示意图。
具体实施方式
47.为使本技术的目的、技术方案和优点更加清楚,下面将对本技术的技术方案进行详细的描述。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本技术所保护的范围。
48.请参阅图1,图1是根据一示例性实施例示出的一种基于jmeter的断言方法流程示意图,如图1所示,该方法包括:
49.步骤s101、获取前置接口类型,根据所述前置接口类型获取相应的响应参数;
50.即,当进行断言时需要前置接口sampler的返回值满足一定条件时,可以作为判断条件进行设置,所述前置接口类型包括pre_url接口、pre_field接口、pre_rule接口以及pre_value接口。
51.其中pre_url为对应前置接口类或url,pre_rule可下拉选择规则,如=、>、<等。
52.步骤s102、根据所述前置接口类型以及响应参数设置检查条件,发送所述检查条件至服务器;
53.检查条件可以添加多类型多字段,如响应代码,响应信息,响应文本等,从而对预期结果检查进行更全面的覆盖。
54.步骤s103、接收所述服务器根据所述检查条件返回的响应信息;
55.具体的,当接收的响应信息为text,json,xml,html,xpath等格式时,进行响应类型和字段类型判断后分别进行处理,此处由底层代码实现分流映射。
56.本技术还提供了对服务器接口返回结果中多种类型字段的校验,如响应文本,响应代码,响应信息等。同时,也提供了多种模式匹配规则以满足各种场景下的检查方式,包括但不限于如包括、相、与等等。
57.步骤s104、根据所述响应信息判断所述前置接口调用状态;
58.步骤s105、根据所述接口调用状态对断言部分的预期结果字段进行检查判断,输出断言结果。
59.可以理解为,一种基于jmeter的断言方法,通过获取前置接口类型,根据接口类型获取相应的响应参数;根据前置接口类型以及响应参数设置检查条件,发送检查条件至服务器;接收服务器根据检查条件返回的响应信息;根据响应信息判断前置接口调用状态;根据接口调用状态对断言部分的预期结果字段进行检查判断,输出断言结果。同时支持json,xml,xpath等响应格式的方法,兼顾到断言方式的易用与灵活的设计模式,提高了产品研发
效率。
60.作为上述方法的进一步改进,一些实施例中,所述根据所述接口调用状态对断言部分的预期结果字段进行检查判断,输出断言结果,包括:
61.若所述预期结果字段不存在,则断言失败,则输出断言异常结果;
62.若所述预期结果字段存在,则继续检查判断所述字段对应的关键值;
63.若所述关键值不存在,则断言失败,输出断言异常结果;
64.若所述关键值存在,则输出断言成功结果。
65.一些实施例中,还包括:
66.在根据所述接口调用状态对断言部分的预期结果字段进行检查判断的时,
67.将断言部分的字段与关键值加亮展示在展示区。
68.一些实施例中,还包括:设置与所述检查条件互斥的检查项作为断言结果。
69.一些实施例中,对所述前置接口进行调试,包括:
70.若为单个接口,则默认当前前置接口类型为url;
71.若为多个接口组成的线程组,则需手动填入对应接口类或url。
72.请参阅图2,图2是根据一示例性实施例示出的一种基于jmeter的断言装置结构示意图,如图2所示,该装置包括:
73.获取模块1,用于获取前置接口类型,根据所述前置接口类型获取相应的响应参数;
74.设置检查条件模块2,用于根据所述前置接口类型以及响应参数设置检查条件,发送所述检查条件至服务器;
75.接收响应信息模块3,用于接收所述服务器根据所述检查条件返回的响应信息;
76.判断模块4,用于根据所述响应信息判断所述前置接口调用状态;
77.输出断言结果模块5,用于根据所述接口调用状态对断言部分的预期结果字段进行检查判断,输出断言结果。
78.关于上述实施例中的基于jmeter的断言装置,其中各个模块执行操作的具体方式已经在上述相关方法的实施例中进行了详细描述,此处将不做详细阐述说明。
79.为便于理解,如图3所示,本技术根据一示例性实施例示出的一种基于jmeter的断言装置操作示意图。
80.如图3所示,包括:
81.断言前置区,当进行断言时需要前置接口sampler的返回值满足一定条件时,可以作为判断条件进行设置。分为
82.@pre_url,pre_field,pre_rule,pre_value,其中@pre_url为对应前置接口类或url,pre_rule可下拉选择规则,如=、>、<等。
83.断言区,用于设置检查条件,可以添加多类型多字段,如响应代码,响应信息,响应文本等,从而对预期结果检查进行更全面的覆盖。
84.当获取的响应为text,json,xml,html,xpath等格式时,工具内部进行响应类型和字段类型判断后分别进行处理,此处由底层代码实现分流映射。
85.断言区包括url,field,rule,value,当对单个接口调试时,url默认为当前接口,无需填写。若为多个接口组成的线程组,则需填入对应接口类或url。
86.断言后置区。设置与断言区互斥的检查项作为断言结果。分为post_field,post_rule,post_value,post_rule可下拉选择规则,如=、>、<等。
87.展示区,在jmeter发送请求的同时,按照@url在yapi平台获取对应response出参,并将断言部分的field与value加亮展示。
88.日志定义区,分为log_level和log_field,直接下拉选择日志级别,设置需要打印的字段信息。
89.可以理解为,本技术根据接口类或url读取yapi平台维护的接口信息,获取对应response出参,并在展示区提供断言部分加亮预览。在服务器返回响应信息后,首先判断接口调用状态,根据成功或失败对断言部分的预期结果字段即field进行检查判断,如果response出参中包含field,则继续检查判断feild对应的value值并用response与预期结果进行检查断言,反之则直接抛出异常信息。该断言装置采用下拉+录入式输入形式,所有条件项及field(通过yapi自动获取)均为选择项,url及value可自定义输入。本技术同时支持json,xml,xpath等响应格式的方法。兼顾到断言方式的易用与灵活的设计模式,直观简洁的展示方式,具有扩展性良好的提示信息定义方式。
90.需要说明的是,在本技术的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本技术的描述中,除非另有说明,“多个”、“多”的含义是指至少两个。
91.应该理解,当元件被称为“固定于”或“设置于”另一个元件,它可以直接在另一个元件上或者可能同时存在居中元件;当一个元件被称为“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件,此外,这里使用的“连接”可以包括无线连接;使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。
92.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为:表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本技术的实施例所属技术领域的技术人员所理解。
93.应当理解,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
94.本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
95.此外,在本技术各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机
可读取存储介质中。
96.上述提到的存储介质可以是只读存储器,磁盘或光盘等。
97.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
98.尽管上面已经示出和描述了本技术的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本技术的限制,本领域的普通技术人员在本技术的范围内可以对上述实施例进行变化、修改、替换和变型。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1