服务端测试方法、装置、设备及存储介质与流程

未命名 08-14 阅读:107 评论:0


1.本技术涉及测试技术领域,尤其涉及一种服务端测试方法、装置、设备及存储介质。


背景技术:

2.随着物联网技术的发展,要求一些为终端设备提供服务的服务端(例如针对物联网设备管理的平台即服务(platform as a service,pass)平台服务器等)支持jt/t 808协议,在设备厂商将服务端交付到客户处之前,需要设备厂商的技术人员对服务端进行jt/t 808协议测试,以保证服务端的性能符合要求。
3.目前针对服务端进行jt/t 808协议测试时,技术人员手动地按照jt/t808协议规范和具体业务场景计算报文,并借助传输控制协议(transmission control protocol,tcp)客户端模拟终端设备将报文发送至服务端,待tcp客户端接收到服务端的响应消息后,技术人员对响应消息进行解码再进行下一业务操作。
4.但这样计算报文进行测试时,容易出现测试失败的情况。


技术实现要素:

5.本技术提供一种服务端测试方法、装置、设备及存储介质,有助于降低服务端的jt/t 808协议测试失败率。
6.第一方面,本技术提供一种服务端测试方法,该方法包括:根据测试需求创建不同业务处理逻辑的jt/t 808协议取样器,结合java编码格式完成编码,将jt/t 808协议取样器所在的工程打包成jar包耦合到jmeter的框架中;
7.在jmeter中创建线程组,并根据测试场景在线程组中添加至少一个jt/t808协议取样器,生成脚本;
8.执行脚本,根据脚本中的各jt/t 808协议取样器的预设参数向服务端发送请求报文,并接收服务端发送的响应结果,根据测试场景断言响应结果。
9.在一种可能的实现方式中,将jt/t 808协议取样器所在的工程打包成jar包耦合到jmeter的框架中,包括:
10.将jt/t 808协议取样器所在的工程打包成jar包放置在jmeter的lib/ext目录下。
11.在一种可能的实现方式中,在根据各jt/t 808协议取样器的预设参数向服务端发送请求报文之前,方法包括:
12.通过脚本中的jt/t 808协议取样器提取jt/t 808协议取样器中的预设参数,并根据预设参数生成源报文,在源报文上加上报文头部、安全校验码和报文结尾的标识符,生成请求报文。
13.在一种可能的实现方式中,jar包中还包括协议配置管理器,协议配置管理器用于配置第一参数,第一参数用于客户端与服务端之间的连接控制;
14.根据测试场景在线程组中添加至少一个jt/t 808协议取样器,包括:
15.根据测试场景在线程组中添加协议配置管理器和至少一个jt/t 808协议取样器。
16.在一种可能的实现方式中,jmeter中包括并发控制器,在jmeter中创建线程组时,方法还包括:通过并发控制器设置线程组的并发线程数。
17.在一种可能的实现方式中,jt/t 808协议取样器包括下述任意至少一种:jt/t 808协议注册取样器、jt/t 808协议鉴权取样器、jt/t 808协议心跳取样器、jt/t 808协议数据采集取样器、jt/t 808协议注销取样器。
18.在一种可能的实现方式中,jt/t 808协议注册取样器用于根据第一参数使得客户端与服务端通信连接;
19.jt/t 808协议注册取样器还用于根据jt/t 808协议将第二参数封装为注册报文,使得客户端向服务端发送注册报文,并接收服务端发送的注册响应报文,判断注册响应报文是否正确;
20.jt/t 808协议鉴权取样器用于根据jt/t 808协议将第三参数封装为鉴权报文,使得客户端向服务端发送鉴权报文,并接收服务端发送的鉴权响应报文,判断鉴权响应报文是否正确;
21.jt/t 808协议数据采集取样器用于根据jt/t 808协议将第四参数封装为数据采集报文,使得客户端向服务端发送数据采集报文,并接收服务端发送的数据采集响应报文,判断数据采集响应报文是否正确;
22.jt/t 808协议心跳取样器用于根据jt/t 808协议将第五参数封装为保活报文,使得客户端定期向服务端发送保活报文,以使客户端和服务端之间的通信链路保持活跃;
23.jt/t 808协议注销取样器用于根据jt/t 808协议将第六参数封装为注销报文,使得客户端向服务端发送注销报文。
24.第二方面,本技术提供一种服务端测试装置,服务端支持jt/t 808协议,该装置包括创建模块,添加模块和执行模块,其中,
25.创建模块,用于根据测试需求创建不同业务处理逻辑的jt/t 808协议取样器,结合java编码格式完成编码,将jt/t 808协议取样器所在的工程打包成jar包耦合到jmeter的框架中;
26.添加模块,在jmeter中创建线程组,并根据测试场景在线程组中添加至少一个jt/t 808协议取样器,生成脚本;
27.执行模块,用于执行脚本,根据脚本中的各jt/t 808协议取样器的预设参数向服务端发送请求报文,并接收服务端发送的响应结果,根据测试场景断言响应结果。
28.在一种可能的实现方式中,创建模块,具体用于:
29.将jt/t 808协议取样器所在的工程打包成jar包放置在jmeter的lib/ext目录下。
30.在一种可能的实现方式中,在根据各jt/t 808协议取样器的预设参数向服务端发送请求报文之前,装置还包括:
31.生成模块,用于通过脚本中的jt/t 808协议取样器提取jt/t 808协议取样器中的预设参数,并根据预设参数生成源报文,在源报文上加上报文头部、安全校验码和报文结尾的标识符,生成请求报文。
32.在一种可能的实现方式中,jar包中还包括协议配置管理器,协议配置管理器用于配置第一参数,第一参数用于客户端与服务端之间的连接控制;
33.添加模块,具体用于:根据测试场景在线程组中添加协议配置管理器和至少一个jt/t 808协议取样器。
34.在一种可能的实现方式中,jmeter中包括并发控制器,在jmeter中创建线程组时,装置还包括:
35.设置模块,用于通过并发控制器设置线程组的并发线程数。
36.在一种可能的实现方式中,jt/t 808协议取样器包括下述任意至少一种:jt/t 808协议注册取样器、jt/t 808协议鉴权取样器、jt/t 808协议心跳取样器、jt/t 808协议数据采集取样器、jt/t 808协议注销取样器。
37.在一种可能的实现方式中,jt/t 808协议注册取样器用于根据第一参数使得客户端与服务端通信连接;
38.jt/t 808协议注册取样器还用于根据jt/t 808协议将第二参数封装为注册报文,使得客户端向服务端发送注册报文,并接收服务端发送的注册响应报文,判断注册响应报文是否正确;
39.jt/t 808协议鉴权取样器用于根据jt/t 808协议将第三参数封装为鉴权报文,使得客户端向服务端发送鉴权报文,并接收服务端发送的鉴权响应报文,判断鉴权响应报文是否正确;
40.jt/t 808协议数据采集取样器用于根据jt/t 808协议将第四参数封装为数据采集报文,使得客户端向服务端发送数据采集报文,并接收服务端发送的数据采集响应报文,判断数据采集响应报文是否正确;
41.jt/t 808协议心跳取样器用于根据jt/t 808协议将第五参数封装为保活报文,使得客户端定期向服务端发送保活报文,以使客户端和服务端之间的通信链路保持活跃;
42.jt/t 808协议注销取样器用于根据jt/t 808协议将第六参数封装为注销报文,使得客户端向服务端发送注销报文。
43.第三方面,本技术提供一种电子设备,包括:处理器和存储器;存储器存储计算机执行指令;处理器执行存储器存储的计算机执行指令,使得处理器执行如第一方面或第一方面的任一种可能的实现方式中描述的服务端测试方法。
44.第四方面,本技术提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机执行指令,当计算机执行指令被处理器执行时用于实现如第一方面或第一方面的任一种可能的实现方式中描述的服务端测试方法。
45.第五方面,本技术提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,实现如第一方面或第一方面的任一种可能的实现方式中描述的服务端测试方法。
46.本技术实施例中,根据测试需求创建不同业务处理逻辑的jt/t 808协议取样器,结合java编码格式完成编码,将jt/t 808协议取样器所在的工程打包成jar包耦合到jmeter的框架中;在jmeter中创建线程组,并根据测试场景在线程组中添加至少一个jt/t 808协议取样器,生成脚本;执行脚本,根据脚本中的各jt/t 808协议取样器的预设参数向服务端发送请求报文,并接收服务端发送的响应结果,根据测试场景断言响应结果。这样自动化实现的测试过程既提高了测试效率,也减小了报文出错的概率,从而降低了测试失败率。此外,由于将jt/t 808协议取样器所在的工程打包成jar包耦合到了jmeter的框架中,
测试时通过jt/t 808协议取样器计算报文,而不用人工计算,降低了技术门槛,有利于节约人力成本。
附图说明
47.图1为本技术实施例所适用的场景示意图;
48.图2为本技术实施例提供的一种服务端测试方法的流程示意图;
49.图3为本技术实施例提供的一种测试场景示意图;
50.图4为本技术实施例提供的一种基于jmeter框架的jt/t 808协议鉴权取样器界面示意图;
51.图5为本技术实施例提供的一种服务端测试流程示意图;
52.图6为本技术实施例提供的一种服务端测试装置的结构示意图;
53.图7为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
54.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术的实施例,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
55.在本技术实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一芯片和第二芯片仅仅是为了区分不同的芯片,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
56.需要说明的是,本技术实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
57.本技术实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a
‑‑
c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
58.需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
59.应该理解的是,虽然本技术实施例中的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,
这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,图中的至少一部分步骤可以包括至少一个子步骤或者至少一个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
60.物联网协议例如可以包括消息队列遥测传输(message queuing telemetry transport,mqtt)协议、lwm2m协议、coap协议以及jt/t808协议等。
61.其中,jt/t 808协议为交通运输行业标准,例如2013版jt/t 808协议规定了道路运输车辆卫星定位系统北斗兼容车载终端与监管/监控平台之间的通讯协议与数据格式,包括协议基础、通信连接、消息处理、协议分类与说明及数据格式。
62.目前关于物联网设备协议的自动化测试领域中有mqtt、lwm2m等的案例,但是对于部分国标协议如jt/t 808协议尚无成熟的自动化测试工具或方法。随着物联网技术的发展,要求一些为终端设备提供服务的服务端(例如针对物联网设备管理的平台即服务(platform as a service,pass)平台服务器等)支持jt/t 808协议,在设备厂商将服务端交付到客户处之前,需要设备厂商的技术人员对服务端进行jt/t 808协议测试,以保证服务端的性能符合要求。
63.目前针对服务端进行jt/t 808协议测试时,技术人员手动地按照jt/t808协议规范和具体业务场景计算报文,并借助传输控制协议(transmission control protocol,tcp)客户端模拟终端设备将报文发送至服务端,待tcp客户端接收到服务端的响应消息后,技术人员对响应消息进行解码再进行下一业务操作。
64.手动计算报文需要技术人员对jt/t 808协议规范足够了解,且计算时要非常细致,但由于jt/t 808协议内容繁杂、业务场景繁多、报文格式复杂、字段多,因此,技术人员手动计算报文时容易出现计算错误导致报文异常的情况,从而使得整个测试链中止,测试失败。
65.有鉴于此,本技术实施例提供一种服务端测试方法,用来测试支持jt/t808协议的服务端,该方法通过将jt/t 808协议取样器所在的工程打包成jar包集成到jmeter的框架中,以将jt/t 808协议中遇到的主要流程用自动化的方式实现,从而实现服务端多业务场景的自动化测试。这样自动化实现的测试过程既提高了测试效率,还减少了报文出错的概率,同时也节省了人力成本。
66.示例性的,图1示出了本技术实施例所适用的场景示意图。如图1所示,本技术实施例的场景中可以包括服务端和客户端。
67.本技术实施例中,被测的服务端支持jt/t 808协议,示例性的,服务端可以是pass平台服务器、设备管理平台服务器或其他任意支持jt/t 808协议的服务器。
68.本技术实施例中,jt/t 808协议以2013版jt/t 808协议为例进行示例说明,该示例并不构成对本技术实施例的具体限制。
69.本技术实施例中,服务端用于接收客户端发送的请求报文,并基于请求报文向客户端发送响应结果。
70.测试时,服务端和客户端之间可以通过无线连接。在一些可能的实现中,服务端和客户端之间也可以通过有线连接。
71.其中,客户端可以是安装有windows、linux等系统中至少一种系统的终端设备,示
例性的,客户端可以是个人计算机(personal computer,pc)、带无线收发功能的电脑等。客户端可以基于本技术实施例提供的服务端测试方法对服务端进行jt/t 808协议测试。
72.示例性的,该服务端测试方法包括:根据测试需求创建不同业务处理逻辑的jt/t 808协议取样器,结合java编码格式完成编码,将jt/t 808协议取样器所在的工程打包成jar包耦合到jmeter的框架中;在jmeter中创建线程组,并根据测试场景在线程组中添加至少一个jt/t 808协议取样器,生成脚本;执行脚本,根据脚本中的各jt/t 808协议取样器的预设参数向服务端发送请求报文,并接收服务端发送的响应结果,根据测试场景断言响应结果。这样自动化实现的测试过程既提高了测试效率,也减小了报文出错的概率,从而降低了服务端的jt/t 808协议测试失败率。
73.下面,通过具体实施例对本技术所示的技术方案进行详细说明。需要说明的是,下面几个实施例可以独立存在,也可以相互结合,对于相同或相似的内容,在不同的实施例中不再重复说明。
74.示例性的,图2示出了本技术实施例提供的一种服务端测试方法的流程示意图。本技术实施例的执行主体可以为图1中的客户端,具体执行主体可以根据实际应用场景确定。本技术实施例中的服务端支持jt/t 808协议。如图2所示,该方法可以包括:
75.s201:根据测试需求创建不同业务处理逻辑的jt/t 808协议取样器,结合java编码格式完成编码,将jt/t 808协议取样器所在的工程打包成jar包耦合到jmeter的框架中。
76.其中,jmeter是基于java开发的一款开源免费的测试工具。
77.其中,jt/t 808协议取样器可以为基于jmeter的可视化jt/t 808协议取样器插件,使用jt/t 808协议取样器既可以执行服务端的自动化测试,也可以执行服务端的性能测试。
78.本技术实施例中,针对不同的业务之间的逻辑关系创建的测试类也就是jt/t 808协议取样器可以实现覆盖复杂的业务处理逻辑,满足了复杂的测试要求。
79.在创建好jt/t 808协议取样器后,还将jt/t 808协议取样器所在的工程打包成jar包耦合到jmeter的框架中,以使客户端可以通过jmeter调用各jt/t808协议取样器来模拟终端设备向服务端上报数据,覆盖服务端的jt/t 808协议的上行业务场景。
80.s202:在jmeter中创建线程组,并根据测试场景在线程组中添加至少一个jt/t 808协议取样器,生成脚本。
81.其中,测试场景包括针对jt/t 808协议的业务测试场景,例如注册、鉴权、心跳保活、位置信息上报等。
82.可能的实现中,采用jmeter gui工具创建线程组,再根据测试场景在线程组中添加至少一个jt/t 808协议取样器,生成脚本。
83.示例性的,若测试场景为未注册过或者注册过但已被注销的设备鉴权的场景,则添加的jt/t 808协议取样器至少包括jt/t 808协议注册取样器和jt/t 808协议鉴权取样器。jt/t 808协议取样器的类型将在后续步骤中详细说明,在此不作赘述。
84.此外,还可以在创建的线程组中添加jmeter的其他测试相关组件,以便测试结束后通过测试相关组件对测试结果进行分析。
85.其中,上述测试相关组件可为聚合报告、查看结果树等。
86.s203:执行脚本,根据脚本中的各jt/t 808协议取样器的预设参数向服务端发送
请求报文,并接收服务端发送的响应结果,根据测试场景断言响应结果。
87.需要说明的是,在客户端根据至少一个jt/t 808协议取样器的预设参数向服务端发送请求报文之前,客户端与服务端之间建立tcp通信连接,且在测试过程中,客户端与服务端之间的通信链路保持活跃状态。
88.测试过程中,客户端基于jt/t 808协议取样器向服务端发送请求报文并接收服务端的响应结果,进一步的,断言响应结果的正确性,并记录测试结果。
89.示例性的,基于jt/t 808协议响应报文的格式定义判断响应结果,例如响应结果为“00”时表征响应结果正确,响应结果为“01”时表征响应结果错误。
90.本技术实施例根据测试需求创建不同业务处理逻辑的jt/t 808协议取样器,结合java编码格式完成编码,将jt/t 808协议取样器所在的工程打包成jar包耦合到jmeter的框架中;在jmeter中创建线程组,并根据测试场景在线程组中添加至少一个jt/t 808协议取样器,生成脚本;执行脚本,根据脚本中的各jt/t 808协议取样器的预设参数向服务端发送请求报文,并接收服务端发送的响应结果,根据测试场景断言响应结果。这样自动化实现的测试过程既提高了测试效率,也减小了报文出错的概率,从而降低了测试失败率。此外,由于将jt/t 808协议取样器所在的工程打包成jar包耦合到了jmeter的框架中,测试时通过jt/t 808协议取样器计算报文,而不用人工计算,降低了技术门槛,有利于节约人力成本。
91.在一种可能的实现方式中,上述步骤将jt/t 808协议取样器所在的工程打包成jar包耦合到jmeter的框架中,可以包括:将jt/t 808协议取样器所在的工程打包成jar包放置在jmeter的lib/ext目录下。
92.本技术实施例中,结合java编码格式完成编码,将jt/t 808协议取样器所在的工程打包成jar包放置在jmeter的lib/ext目录下,得到针对jt/t 808协议服务端的测试工具,在jmeter启动时将jar包加载到内存中,以使测试人员在jmeter的菜单中调用各jt/t 808协议取样器。
93.本技术实施例中,将jt/t 808协议取样器所在的工程打包成jar包放置在jmeter的lib/ext目录下,与已实现的mqtt协议、lwm2m协议自动化测试方法构建成一套自动化测试系统平台,这样,测试人员可以基于该集成了jt/t808协议、mqtt协议、lwm2m协议自动化测试方法的jmeter实现各物联网协议的测试,避免了自动化测试工具多样的缺点。
94.在一种可能的实现方式中,在根据各jt/t 808协议取样器的预设参数向服务端发送请求报文之前,方法包括:
95.通过脚本中的jt/t 808协议取样器提取jt/t 808协议取样器中的预设参数,并根据预设参数生成源报文,在源报文上加上报文头部、安全校验码和报文结尾的标识符,生成请求报文。
96.其中,预设参数为各jt/t 808协议取样器的用于生成对应请求报文的参数,或者说是测试人员在将jt/t 808协议取样器添加到线程组时对应输入的参数。
97.下面对本技术实施例中的jt/t 808协议取样器的类型和参数进行介绍。
98.示例性的,图3示出了本技术实施例提供的一种测试场景示意图。如图3所示,该场景为客户端模拟终端设备在服务端从注册到注销的全业务处理逻辑,也就是在线程组中添加了jt/t 808协议注册(register)取样器、jt/t808协议鉴权(authentication)取样器、
jt/t 808协议心跳(heartbeat)取样器、jt/t 808协议数据采集(data acquisition)取样器、jt/t 808协议注销(unregister)取样器。协议配置管理器和各jt/t 808协议取样器所在工程通过打包集成在了jmeter框架中,jmeter中还包括并发控制器。
99.启动客户端中的jmeter工具,在jmeter中创建线程组时,客户端通过并发控制器设置线程组的并发线程数。当并发线程数为1时,也就是单线程运行,用于对服务端执行自动化测试,或者也可以理解为模拟了1台终端设备向服务端发送请求报文对服务端进行测试;当并发线程数为n(n大于1)时,也就是多线程运行,用于对服务端执行性能和/或功能测试,或者也可以理解为模拟了n台终端设备向服务端发送请求报文对服务端进行测试。
100.本技术实施例中,根据测试场景在线程组中添加至少一个jt/t 808协议取样器时,还可以添加协议配置管理器,协议配置管理器用于配置第一参数,第一参数至少包括:jt/t 808协议接入服务端的统一资源定位符(uniform resource locator,url)、连接超时设置选项;网络连接设置选项;安全套接字协议(secure sockets layer,ssl)安全传输设置选项等。其中,连接超时设置选项包括连接(connect)和响应(response),网络连接设置选项包括连接复用(re-use connection)和关闭连接(close connection),ssl安全传输设置选项包括加密传输开关和x.509公钥证书路径。
101.示例性的,第一参数及其数据类型如表1所示。
102.表1
[0103][0104][0105]
本技术实施例中,第一参数用于客户端与服务端之间的连接控制。示例性的,jt/t 808协议注册取样器根据第一参数使得客户端与服务端建立tcp通信连接。
[0106]
客户端通过长连接模式,与服务端建立起网络连接,tcp网络握手完成后,客户端基于各jt/t 808协议取样器向服务端发送按jt/t 808协议定义的请求报文。
[0107]
jt/t 808协议注册取样器还用于配置第二参数,第二参数至少包括:消息id、消息体属性、消息体流水号、制造商id、设备型号、设备编号、车牌颜色、车牌号、省域id、市县域id和手机号等。
[0108]
示例性的,第二参数及其数据类型如表2所示。
[0109]
表2
[0110]
第二参数数据类型
消息id字(word)消息体属性word消息体流水号word制造商idword设备型号word设备编号word车牌颜色word车牌号word省域idword市县域idword手机号bcd[6]
[0111]
可能的实现中,jt/t 808协议注册取样器根据jt/t 808协议将第二参数封装为注册报文,使得客户端向服务端发送注册报文,并接收服务端返回的注册响应报文,判断注册响应报文是否正确,若正确响应,则从响应报文中提取出鉴权码。
[0112]
示例性的,客户端通过jt/t 808协议注册取样器提取第二参数,基于jt/t 808协议规范对第二参数进行编码转换,计算数据长度,并生成安全校验码。jt/t 808协议注册取样器根据第二参数生成源报文,在源报文上加上报文头部、安全校验码和报文结尾的标识符,拼接为16进制注册报文,并将该注册报文发送到被测的服务端,等待接收服务端的注册响应报文,判断收到的注册响应报文是否正确,若正确响应,再从注册响应报文中提取出鉴权码。
[0113]
需要说明的是,该注册响应报文和第三参数中的鉴权码可以是相同的。
[0114]
可选的,为了提高测试效率,也可以不从注册响应报文中提取鉴权码。例如被测的服务端的鉴权码是已知的,则可以将该鉴权码写入jt/t 808协议鉴权取样器配置的第三参数中,则鉴权时可以采用第三参数中的鉴权码。
[0115]
本技术实施例中,jt/t 808协议鉴权取样器用于配置第三参数,第三参数至少包括:消息id、消息体属性、消息体流水号、鉴权码和手机号等。
[0116]
示例性的,第三参数及其数据类型如表3所示。
[0117]
表3
[0118]
第三参数数据类型消息idword消息体属性word消息体流水号word鉴权码word手机号bcd[6]
[0119]
可能的实现中,jt/t 808协议鉴权取样器根据jt/t 808协议将第三参数封装为鉴权报文,使得客户端向服务端发送鉴权报文,并接收服务端发送的鉴权响应报文,判断鉴权响应报文是否正确。
[0120]
示例性的,客户端通过jt/t 808协议鉴权取样器提取第三参数,基于jt/t 808协议规范对第三参数进行编码转换,计算数据长度,并生成安全校验码。jt/t 808协议鉴权取
样器根据第三参数生成源报文,在源报文上加上报文头部、安全校验码和报文结尾的标识符,拼接为16进制鉴权报文,并将该鉴权报文发送到被测的服务端,等待接收服务端的鉴权响应报文,判断收到的鉴权响应报文是否正确。
[0121]
本技术实施例中,jt/t 808协议数据采集取样器用于配置第四参数,第四参数至少包括:消息id、消息体属性、消息体流水号、手机号和采集数据。
[0122]
示例性的,第四参数及其数据类型如表4所示。
[0123]
表4
[0124]
第四参数数据类型消息idword消息体属性word消息体流水号word手机号bcd[6]采集数据word
[0125]
可能的实现中,jt/t 808协议数据采集取样器用于根据jt/t 808协议将第四参数封装为数据采集报文,使得客户端向服务端发送数据采集报文,并接收服务端发送的数据采集响应报文,判断数据采集响应报文是否正确;
[0126]
示例性的,jt/t 808协议数据采集取样器模拟终端设备采集数据,客户端通过jt/t 808协议数据采集取样器提取第四参数,基于jt/t 808协议规范对第四参数进行编码转换,计算数据长度,并生成安全校验码。jt/t808协议数据采集取样器根据第四参数生成源报文,在源报文上加上报文头部、安全校验码和报文结尾的标识符,拼接为16进制数据采集报文,并将该数据采集报文发送到被测的服务端,等待接收服务端的数据采集响应报文,判断收到的数据采集响应报文是否正确。
[0127]
本技术实施例中,jt/t 808协议心跳取样器用于配置第五参数,第五参数至少包括:消息id、消息体属性、消息体流水号、手机号和发送周期。
[0128]
示例性的,第五参数及其数据类型如表5所示。
[0129]
表5
[0130][0131][0132]
可能的实现中,在鉴权成功后,jt/t 808协议心跳取样器根据jt/t 808协议将第五参数封装为保活报文,使得客户端按发送周期向服务端发送保活报文,以使客户端和服务端之间的通信链路保持活跃。
[0133]
示例性的,客户端通过jt/t 808协议心跳取样器提取第五参数,基于jt/t 808协
议规范对第五参数进行编码转换,计算数据长度,并生成安全校验码。jt/t 808协议心跳取样器根据第四参数生成源报文,在源报文上加上报文头部、安全校验码和报文结尾的标识符,拼接为16进制保活报文,并将该保活报文发送到被测的服务端,以使客户端和服务端之间的通信链路保持活跃。
[0134]
本技术实施例中,jt/t 808协议注销取样器用于配置第六参数,第六参数至少包括:消息id、消息体属性、消息体流水号和手机号等。
[0135]
示例性的,第六参数及其数据类型如表6所示。
[0136]
表6
[0137]
第六参数数据类型消息idword消息体属性word消息体流水号word手机号bcd[6]
[0138]
可能的实现中,在客户端和服务端之间的通信链路保持活跃的情形下,jt/t 808协议注销取样器根据jt/t 808协议将第六参数封装为注销报文,并使客户端向服务端发送注销报文。
[0139]
示例性的,客户端通过jt/t 808协议注销取样器提取第六参数,基于jt/t 808协议规范对第六参数进行编码转换,计算数据长度,并生成安全校验码。jt/t 808协议注销取样器根据第六参数生成源报文,在源报文上加上报文头部、安全校验码和报文结尾的标识符,拼接为16进制保活报文,并将该保活报文发送到被测的服务端,以断开客户端和服务端之间的tcp通信连接,并将客户端模拟的终端设备从服务端注销。模拟的终端设备被注销后,若需要再次使用,需要重新注册成功。
[0140]
可选的,若测试时没有添加jt/t 808协议注销取样器,测试完成后没有在服务端注销模拟的终端设备,则再次使用该模拟的终端设备连接该服务端时,可以不用再次注册。
[0141]
本技术实施例中,结合java编码格式完成编码,将协议配置管理器、t/t808协议注册取样器、jt/t 808协议鉴权取样器、jt/t 808协议心跳取样器、jt/t 808协议数据采集取样器和jt/t 808协议注销取样器所在的工程打包成jar包耦合到jmeter的框架中,得到针对jt/t 808协议服务端的测试工具。测试时,根据测试场景简单调用协议配置管理器和jt/t 808协议取样器运行脚本,即可实现对服务端的jt/t 808协议测试。客户端可以通过jt/t 808协议取样器的预设参数计算请求报文、处理响应结果,基于响应结果的正确性得到对服务端进行测试的测试结论,不需要人工计算和处理,既降低了因请求报文出错导致测试失败的概率,也降低了测试的技术门槛,提高了测试效率,有助于达到降本增效的效果。此外,借助响应时间、并发线程数等统计指标的监控为性能测试提供一定的依据。
[0142]
本技术实施例中,根据测试场景调用不同的jt/t 808协议取样器,以根据jt/t 808协议去模拟终端设备的业务场景,实现端到端全流程业务场景的覆盖。
[0143]
示例性的,假设测试场景为未注册过或者注册过但已被注销的设备鉴权的场景,则在线程组中添加协议配置管理器、jt/t 808协议注册取样器和jt/t808协议鉴权取样器。且在添加配置管理器时,客户端可以接收测试人员在配置管理器的界面中输入的第一参数;在添加jt/t 808协议注册取样器时,客户端可以接收测试人员在jt/t 808协议注册取
样器的界面中输入的第二参数;在添加jt/t 808协议鉴权取样器时,客户端可以接收测试人员在jt/t 808协议鉴权取样器的界面中输入的第三参数。
[0144]
示例性的,图4示出了本技术实施例提供的一种基于jmeter框架的jt/t808协议鉴权取样器界面示意图。如图4所示,创建的线程组中添加了协议配置管理器、jt/t 808协议注册取样器和jt/t 808协议鉴权取样器,示例性的,取样器显示区域显示了jt/t 808协议鉴权取样器的名称和参数,测试人员可以基于jt/t 808协议鉴权取样器定义的参数在参数区域输入对应的第三参数。
[0145]
下面对具体的测试过程进行介绍。示例性的,图5示出了本技术实施例提供的一种服务端测试流程示意图。
[0146]
如图5所示,客户端中包括启动客户端模块、jt/t 808协议取样器、协议编码器、发送模块、接收模块、协议解码器、内存;测试时,首先,启动客户端,客户端基于协议配置管理器配置的第一参数建立与jt/t 808协议服务端的tcp通信连接,并将客户端唯一id与tcp连接通道存入内存中;然后,jt/t 808协议取样器根据从内存中获取tcp的连接通道;将tcp连接通道和提取的预设参数发送给协议编码器;接着,协议编码器会根据jt/t 808协议规范完成协议编码,实现数据安全校验码,组成请求报文,传递到发送模块;再接着,发送模块将请求报文发送到jt/t 808协议服务端,jt/t 808协议服务端收到请求报文后,先提取数据安全校验码进行校验,校验通过后再解码进行业务处理,并将处理结果编码成jt/t 808协议响应报文响应给客户端;再然后,接收模块接收jt/t 808协议服务端下发的响应报文,根据协议规范定义实现按需接收数据包数据,并传递给协议解码器;最后,协议解码器收到一串字节流后先校验数据安全校验码,检验通过后根据jt/t 808协议规范进行解码,解码后发送到内存存储,jt/t 808协议取样器可以从内存中获取响应结果进行处理。
[0147]
本技术实施例的服务端测试方法首先针对不同的业务之间的逻辑关系,创建协议配置管理器和jt/t 808协议取样器,结合java编码格式完成编码;再将协议配置管理器和jt/t 808协议取样器所在的工程打包成jar包,放置在jmeter的lib/ext目录下,然后通过jmeter gui工具创建线程组,在线程组中添加协议配置管理器、jt/t 808协议取样器以及其它测试相关的组件,例如聚合报告,查看结果树等;在协议配置管理器和jt/t 808协议取样器的界面中输入对应的参数(也就是测试过程中的预设参数);然后运行脚本,开始测试;进入启动线程setup test阶段,通过并发控制器设置并发线程数,通过协议配置管理器配置第一参数,第一参数包括接入服务端的url;启动jmeter客户端,建立客户端与服务端的tcp通信连接;线程启动完毕后进入测试执行run test阶段,在该阶段,客户端根据脚本配置的取样器类型和参数,基于jt/t 808协议向服务端发起请求,具体地,jt/t 808协议取样器将调用协议编码器根据预设参数生成源报文,并加上报文头部、安全校验码和报文结尾的标识符,生成请求报文;可选的,还将根据源报文中的特殊字段做进一步的转码,最后调用报文发送方法,完成报文发送到jt/t 808协议服务端的操作并接收来自jt/t 808协议服务端的响应结果,根据实际业务测试场景断言响应结果,给出单次测试结论;可选的,客户端还将提取响应结果存储到内存中用于后续jt/t 808协议取样器处理;测试完成后进入结束线程teardown test阶段,该阶段会结束每个线程即基于jt/t 808协议模拟的终端设备和服务器之间的通信连接,同时jmeter工具将整理测试报告,完成整个测试流程。
[0148]
本发明实施例中,根据不同的业务处理逻辑,针对性地创建了不同的取样器,有效
地满足了复杂业务测试场景。以jar格式文件的形式提供了一种插件,适配于jmeter框架用以实现针对服务端的jt/t 808协议自动化测试。jt/t808协议注册取样器、jt/t 808协议鉴权取样器、jt/t 808协议数据采集取样器、jt/t 808协议注销取样器集成了套接字(sokect)方法,运行时客户端向服务端发起sokect长连接,并调用编码方法,生成各jt/t 808协议取样器的请求报文发送给服务端,其中,编码方法可以包括进制转换、异或码计算等;jt/t 808协议心跳取样器周期性地向服务端发送保活报文,以保持客户端和服务端之间的socket长连接,如果超过发送周期的时间未发送保活报文则客户端断开socket长连接;jt/t 808协议注册取样器、jt/t 808协议鉴权取样器、jt/t 808协议数据采集取样器、jt/t 808协议注销取样器在得到服务端返回的响应后做出判断,如果是正确响应,则进入脚本中的下一步骤从而完成整个模拟终端设备和服务端的业务流程测试。
[0149]
本技术实施例以java编程语言jar格式文件的形式开发一款插件,该插件适配jmeter框架,提供了jt/t 808协议注册取样器、jt/t 808协议鉴权取样器、jt/t 808协议心跳取样器、jt/t 808协议数据采集取样器、jt/t808协议注销取样器等测试类以及协议配置管理器,测试人员借助各jt/t808协议取样器和协议配置管理器可以完整实现针对服务端的jt/t 808协议测试。
[0150]
图6为本技术实施例提供的一种服务端测试装置的结构示意图,如图6所示,服务端支持jt/t 808协议,该服务端测试装置60包括:创建模块601、添加模块602和执行模块60,其中,
[0151]
创建模块601,用于根据测试需求创建不同业务处理逻辑的jt/t 808协议取样器,结合java编码格式完成编码,将jt/t 808协议取样器所在的工程打包成jar包耦合到jmeter的框架中;
[0152]
添加模块602,在jmeter中创建线程组,并根据测试场景在线程组中添加至少一个jt/t 808协议取样器,生成脚本;
[0153]
执行模块603,用于执行脚本,根据脚本中的各jt/t 808协议取样器的预设参数向服务端发送请求报文,并接收服务端发送的响应结果,根据测试场景断言响应结果。
[0154]
在一种可能的实现方式中,创建模块601,具体用于:
[0155]
将jt/t 808协议取样器所在的工程打包成jar包放置在jmeter的lib/ext目录下。
[0156]
在一种可能的实现方式中,在根据各jt/t 808协议取样器的预设参数向服务端发送请求报文之前,装置还包括:
[0157]
生成模块,用于通过脚本中的jt/t 808协议取样器提取jt/t 808协议取样器中的预设参数,并根据预设参数生成源报文,在源报文上加上报文头部、安全校验码和报文结尾的标识符,生成请求报文。
[0158]
在一种可能的实现方式中,jar包中还包括协议配置管理器,协议配置管理器用于配置第一参数,第一参数用于客户端与服务端之间的连接控制;
[0159]
添加模块602,具体用于:根据测试场景在线程组中添加协议配置管理器和至少一个jt/t 808协议取样器。
[0160]
在一种可能的实现方式中,jmeter中包括并发控制器,在jmeter中创建线程组时,装置还包括:
[0161]
设置模块,用于通过并发控制器设置线程组的并发线程数。
[0162]
在一种可能的实现方式中,jt/t 808协议取样器包括下述任意至少一种:jt/t 808协议注册取样器、jt/t 808协议鉴权取样器、jt/t 808协议心跳取样器、jt/t 808协议数据采集取样器、jt/t 808协议注销取样器。
[0163]
在一种可能的实现方式中,jt/t 808协议注册取样器用于根据第一参数使得客户端与服务端通信连接;
[0164]
jt/t 808协议注册取样器还用于根据jt/t 808协议将第二参数封装为注册报文,使得客户端向服务端发送注册报文,并接收服务端发送的注册响应报文,判断注册响应报文是否正确;
[0165]
jt/t 808协议鉴权取样器用于根据jt/t 808协议将第三参数封装为鉴权报文,使得客户端向服务端发送鉴权报文,并接收服务端发送的鉴权响应报文,判断鉴权响应报文是否正确;
[0166]
jt/t 808协议数据采集取样器用于根据jt/t 808协议将第四参数封装为数据采集报文,使得客户端向服务端发送数据采集报文,并接收服务端发送的数据采集响应报文,判断数据采集响应报文是否正确;
[0167]
jt/t 808协议心跳取样器用于根据jt/t 808协议将第五参数封装为保活报文,使得客户端定期向服务端发送保活报文,以使客户端和服务端之间的通信链路保持活跃;
[0168]
jt/t 808协议注销取样器用于根据jt/t 808协议将第六参数封装为注销报文,使得客户端向服务端发送注销报文。
[0169]
本技术实施例提供的服务端测试装置60可以执行上述服务端测试方法实施例所示的技术方案,其实现原理以及有益效果类似,此次不再进行赘述。
[0170]
图7为本技术实施例提供的一种电子设备的结构示意图。请参见图7,电子设备70包括:存储器701、处理器702、通信部件703以及总线704。其中,存储器701、处理器702、通信部件703通过总线704实现彼此之间的通信连接。
[0171]
存储器701存储计算机执行指令;
[0172]
处理器702执行存储器701存储的计算机执行指令,使得处理器702执行上述服务端测试方法;
[0173]
通信部件703可以适用但不限于收发器一类的收发设备,来实现电子设备70与其他设备或通信网络之间的通信;
[0174]
总线704可以包括在电子设备70各个部件(例如,存储器701、处理器702、通信部件703)之间传送信息的通路。
[0175]
电子设备70可以为芯片、模组、集成开发环境(integrated development environment,ide)等。
[0176]
图7所示实施例所示的电子设备可以执行上述服务端测试方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
[0177]
本技术实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当计算机执行指令被处理器执行时用于实现上述服务端测试方法。
[0178]
本技术实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,可实现上述服务端测试方法。
[0179]
本技术实施例的计算机可读存储介质及计算机程序产品,可执行上述的服务端测
试方法,其具体的实现过程及有益效果参见上述,在此不再赘述。
[0180]
实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一可读取存储器中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储器(存储介质)包括:只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、快闪存储器、硬盘、固态硬盘、磁带(magnetic tape)、软盘(floppy disk)、光盘(optical disc)及其任意组合。
[0181]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由权利要求书指出。
[0182]
应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求书来限制。

技术特征:
1.一种服务端测试方法,其特征在于,应用于客户端,所述服务端支持jt/t 808协议,所述方法包括:根据测试需求创建不同业务处理逻辑的jt/t 808协议取样器,结合java编码格式完成编码,将所述jt/t 808协议取样器所在的工程打包成jar包耦合到jmeter的框架中;在所述jmeter中创建线程组,并根据测试场景在所述线程组中添加至少一个所述jt/t 808协议取样器,生成脚本;执行所述脚本,根据所述脚本中的各所述jt/t 808协议取样器的预设参数向所述服务端发送请求报文,并接收所述服务端发送的响应结果,根据所述测试场景断言所述响应结果。2.根据权利要求1所述的方法,其特征在于,所述将所述jt/t 808协议取样器所在的工程打包成jar包耦合到jmeter的框架中,包括:将所述jt/t 808协议取样器所在的工程打包成jar包放置在jmeter的lib/ext目录下。3.根据权利要求2所述的方法,其特征在于,在所述根据各所述jt/t808协议取样器的预设参数向所述服务端发送请求报文之前,所述方法包括:通过所述脚本中的所述jt/t 808协议取样器提取所述jt/t 808协议取样器中的预设参数,并根据所述预设参数生成源报文,在所述源报文上加上报文头部、安全校验码和报文结尾的标识符,生成所述请求报文。4.根据权利要求1至3中任一项所述的方法,其特征在于,所述jar包中还包括协议配置管理器,所述协议配置管理器用于配置第一参数,所述第一参数用于所述客户端与所述服务端之间的连接控制;所述根据测试场景在所述线程组中添加至少一个所述jt/t 808协议取样器,包括:根据测试场景在所述线程组中添加所述协议配置管理器和至少一个所述jt/t 808协议取样器。5.根据权利要求4所述的方法,其特征在于,所述jmeter中包括并发控制器,在所述jmeter中创建线程组时,所述方法还包括:通过所述并发控制器设置所述线程组的并发线程数。6.根据权利要求5所述的方法,其特征在于,所述jt/t 808协议取样器包括下述任意至少一种:jt/t 808协议注册取样器、jt/t 808协议鉴权取样器、jt/t 808协议心跳取样器、jt/t 808协议数据采集取样器、jt/t 808协议注销取样器。7.根据权利要求6所述的方法,其特征在于,所述jt/t 808协议注册取样器用于根据所述第一参数使得所述客户端与所述服务端通信连接;所述jt/t 808协议注册取样器还用于根据jt/t 808协议将第二参数封装为注册报文,使得所述客户端向所述服务端发送所述注册报文,并接收所述服务端发送的注册响应报文,判断所述注册响应报文是否正确;所述jt/t 808协议鉴权取样器用于根据jt/t 808协议将第三参数封装为鉴权报文,使得所述客户端向所述服务端发送所述鉴权报文,并接收所述服务端发送的鉴权响应报文,判断所述鉴权响应报文是否正确;所述jt/t 808协议数据采集取样器用于根据jt/t 808协议将第四参数封装为数据采
集报文,使得所述客户端向所述服务端发送所述数据采集报文,并接收所述服务端发送的数据采集响应报文,判断所述数据采集响应报文是否正确;所述jt/t 808协议心跳取样器用于根据jt/t 808协议将第五参数封装为保活报文,使得所述客户端定期向所述服务端发送所述保活报文,以使所述客户端和所述服务端之间的通信链路保持活跃;所述jt/t 808协议注销取样器用于根据jt/t 808协议将第六参数封装为注销报文,使得所述客户端向所述服务端发送所述注销报文。8.一种服务端测试装置,其特征在于,所述服务端支持jt/t 808协议,所述装置包括创建模块,添加模块和执行模块,其中,所述创建模块,用于根据测试需求创建不同业务处理逻辑的jt/t 808协议取样器,结合java编码格式完成编码,将所述jt/t 808协议取样器所在的工程打包成jar包耦合到jmeter的框架中;所述添加模块,在所述jmeter中创建线程组,并根据测试场景在所述线程组中添加至少一个所述jt/t 808协议取样器,生成脚本;所述执行模块,用于执行所述脚本,根据所述脚本中的各所述jt/t 808协议取样器的预设参数向所述服务端发送请求报文,并接收所述服务端发送的响应结果,根据所述测试场景断言所述响应结果。9.一种电子设备,其特征在于,包括:处理器、存储器;所述存储器存储计算机执行指令;所述处理器执行所述存储器存储的计算机执行命令,使得所述处理器执行如权利要求1至7中任一项所述的方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当所述计算机执行指令被处理器执行时用于实现权利要求1至7中任一项所述的方法。

技术总结
本申请提供一种服务端测试方法、装置、设备及存储介质,涉及测试技术领域,该方法包括:根据测试需求创建不同业务处理逻辑的JT/T 808协议取样器,结合java编码格式完成编码,将JT/T 808协议取样器所在的工程打包成jar包耦合到jmeter的框架中;在jmeter中创建线程组,并根据测试场景在线程组中添加至少一个JT/T 808协议取样器,生成脚本;执行脚本,根据脚本中的各JT/T 808协议取样器的预设参数向服务端发送请求报文,并接收服务端发送的响应结果,根据测试场景断言响应结果。这样自动化实现的测试过程既提高了测试效率,也减小了报文出错的概率,从而降低了服务端的JT/T 808协议测试失败率。测试失败率。测试失败率。


技术研发人员:李研 何非 蒋维 张璋
受保护的技术使用者:联通数字科技有限公司 联通物联网有限责任公司
技术研发日:2023.05.22
技术公布日:2023/8/13
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐