一种基于jmeter的接口测试自动化断言方法技术

技术编号:26689563 阅读:28 留言:0更新日期:2020-12-12 02:38
本发明专利技术涉及软件测试领域,为解决单接口无法实现不同领域、具有逻辑关系的断言问题,具体是一种基于jmeter的接口测试自动化断言方法,包括S1、准备测试数据;S2、设置变量分别对应词条用例、领域及意图;S3、通过变量依次获取、执行词条用例并获取执行后的返回结果;S4、对状态码进行断言;S5、断言返回领域值与领域值是否为真,若为真则判断返回意图值与意图值是否为真;S6、对返回报文头进行断言;S7、回写测试结果。采用上述步骤可以实现一次执行就完成对不同领域的状态码、返回体、返回头的断言。

【技术实现步骤摘要】
一种基于jmeter的接口测试自动化断言方法
本专利技术涉及软件测试
,具体是一种基于jmeter的接口测试自动化断言方法。
技术介绍
在基于Json的http接口自动化测试中,jmeter测试工具具有调试方式图形化,各组件模块化的特点,特别适用快速上手实现接口功能自动化测试。在这种方式的接口测试中,断言通常涉及三方面的内容:响应头、响应体、响应状态码;在语义理解场景下使用该工具进行测试,由于语料的丰富性,预期值表现为多种多样,通常需要对响应头、响应体、响应状态码同时进行结果断言。在jmeter的使用中通常有两种手段实现结果断言:1、Json文本断言。通过jsonpath获取到报文指定路径的文本,然后通过和期望值进行相等判断的方式断言。由于这种方式使用jsonpath所以只能对返回body进行不同期望值断言;由于组件之间没有逻辑关系,无法完成具有逻辑关系的期望值断言。2、响应断言。通过获取http返回报文和返回头,通过逻辑方式比对测试模式和返回体或者返回头。这种方式可以对返回头、返回体、响应状态码进行断言。但是一个接口只能固定断言一种领域,无法实现单接口不同领域断言,无法满足多领域断言需求。
技术实现思路
为了提高jmeter断言的灵活性,实现单一接口响应不同领域且具有逻辑关系的不同预期值的一次性断言,本专利技术提供了一种基于jmeter的接口测试自动化断言方法。本专利技术解决上述问题所采用的技术方案是:一种基于jmeter的接口测试自动化断言方法,包括:S1、准备测试数据,所述测试数据包括词条用例和与之对应的领域及领域对应的意图;S2、设置变量分别对应词条用例、领域及意图;S3、通过变量依次获取、执行词条用例并获取执行后的返回结果,所述返回结果包括返回领域值、返回意图值、状态码及返回报文头;S4、对状态码进行断言,若为真则执行下一步骤;S5、断言返回领域值与领域值是否为真,若为真则断言返回意图值与意图值是否为真,若为真则执行下一步骤;S6、对返回报文头进行断言,若为真则执行下一步骤;S7、回写测试结果。进一步地,所述步骤S4为判断状态码是否为200。进一步地,所述步骤S6为判断返回报文头的Content-Type字段值是否为json。进一步地,所述步骤S4、S5或S6的断言结果为假则直接执行步骤S7。进一步地,所述步骤S4、S5、S6的先后顺序不限。本专利技术在数据准备阶段不仅准备了测试用例,还对数据的领域及领域所对应的意图进行了抽取,通过使用自研脚本的方式,把响应体的输入定义为变量,在每次接口访问的时候取值,以解决单一接口访问时数据变化的问题;在断言部分加入了对返回头、响应状态码及响应体的断言,其中,对响应体的断言加入了逻辑判断,表现为对返回领域及返回意图的逻辑判断:首先判断返回领域与预期的领域是否相符,在相符的情况下再对返回意图进行判断;采用上述方式可以实现一次执行即可完成对不同领域且具有逻辑关系的不同预期值的一次性断言;另外,不管断言的结果如何均将其写入日志以便后期查看。附图说明图1为本专利技术按步骤S4、S5、S6执行的整体流程图;图2、图3为步骤S4、S5、S6的不同顺序的其中两种流程图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步的详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。如图1所示,一种基于jmeter的接口测试自动化断言方法,包括:S1、准备测试数据,所述测试数据包括词条用例和与之对应的领域及领域对应的意图;将准备好的测试数据放置在data.txt中。S2、设置变量分别对应词条用例、领域及意图;使用jmetercsv数据文件设置模块添加data.txt的路径,并且在断言部分定义三个变量a、b、c分别对应于词条用例、领域、意图,通过变量a、b、c可以依次读取data.txt中存储的词条用例、领域及意图。S3、通过变量依次获取、执行词条用例并获取执行后的返回结果,所述返回结果包括返回领域值、返回意图值、状态码及返回报文头;S4、对状态码进行断言,若为真则执行下一步骤;在本实施例中为真的判断条件为状态码为200。S5、断言返回领域值与b所对应的值是否为真,若为真则判断返回意图值与c所对应的值是否为真,若为真则执行下一步骤;在本实施例中对领域及意图的断言为真的判断条件为完全相等。S6、对返回报文头进行断言,若为真则执行下一步骤;在本实施例中为真的判断条件为返回报文头的Content-Type字段值为Json。S7、回写测试结果。创建result.csv文件,按照顺序写入变量a、b、c、d所对应的值,其中d为断言结果。在本实施例中,所述步骤S4、S5或S6的断言结果为假则直接执行步骤S7。通过执行步骤S4、S5及步骤S6即可完成对多期望值的断言;通过建立领域与意图间的逻辑关系,首先对领域进行断言,再根据领域的断言结果对意图进行断言,实现对具有逻辑关系的数据的断言;词条用例、领域及意图采用变量代替,通过循环执行步骤S3~S7即可实现对不同领域进行断言。另外,所述步骤S4、S5、S6为并列关系,其先后顺序不限。图2、图3提供了另外两种执行顺序,但执行顺序并不限于此。本文档来自技高网...

【技术保护点】
1.一种基于jmeter的接口测试自动化断言方法,其特征在于,包括:/nS1、准备测试数据,所述测试数据包括词条用例和与之对应的领域及领域对应的意图;/nS2、设置变量分别对应词条用例、领域及意图;/nS3、通过变量依次获取、执行词条用例并获取执行后的返回结果,所述返回结果包括返回领域值、返回意图值、状态码及返回报文头;/nS4、对状态码进行断言,若为真则执行下一步骤;/nS5、断言返回领域值与领域值是否为真,若为真则断言返回意图值与意图值是否为真,若为真则执行下一步骤;/nS6、对返回报文头进行断言,若为真则执行下一步骤;/nS7、回写测试结果。/n

【技术特征摘要】
1.一种基于jmeter的接口测试自动化断言方法,其特征在于,包括:
S1、准备测试数据,所述测试数据包括词条用例和与之对应的领域及领域对应的意图;
S2、设置变量分别对应词条用例、领域及意图;
S3、通过变量依次获取、执行词条用例并获取执行后的返回结果,所述返回结果包括返回领域值、返回意图值、状态码及返回报文头;
S4、对状态码进行断言,若为真则执行下一步骤;
S5、断言返回领域值与领域值是否为真,若为真则断言返回意图值与意图值是否为真,若为真则执行下一步骤;
S6、对返回报文头进行断言,若为真则执行下一步骤;
S7、回写测试结果。


2.根...

【专利技术属性】
技术研发人员:张文韬赵凌彦
申请(专利权)人:四川长虹电器股份有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1