使用jmeter做物联网设备十六进制数据的解析接口测试

编程知识 更新时间:2023-05-02 02:53:26

物联网的硬件设备一般使用的是TCP链接,发送的是16进制数据,但我们在使用设备的后台管理软件时需要看到的是十进制的数据,便于用户观察和统计分析。所以后台开发人员一般会根据硬件的通信协议专门写解析程序或插件对设备发来的十六进制数据进行解析,将解析后的设备数据通过http协议上传至web端的设备后台管理软件。

接下来针对这一过程,进行接口测试的脚本编写

解析数据成功与否是要在相应的接口下运行后的查看结果树里看响应数据是否正确,若响应数据中有新的数据生成,则解析成功。

一、使用jmeter模拟硬件设备发送十六进制数据

规则大概是这样:硬件设备通过TCP连接发送心跳包给服务器,然后才可以发送设备状态日志给服务器,之后会在web端的管理软件用户界面看到最新的日志消息。

这是我填写的TCP请求参数和配置,详细的大家可以自行搜索jmeter TCP取样器相关的知识。

发送心跳包数据后,后台程序会根据当前的心跳包时间回复给设备十六进制数据,这里我在结果树里看到了

 代表发送TCP请求的心跳包成功。

然后是在发送心跳包成功的基础上发送一个设备状态日志,根据协议内容,我可以在data部分写任意的十六进制字符,为了方便解析后查找验证日志存在,我就将nihaO字符转换成十六进制字符放在“设备发送数据”请求的参数中,如下

设备发送的日志数据到服务器这里程序没有响应返回

二、登录

只有先登录才能将查看设备日志请求发送成功

登录需要获取token,传给查看设备日志接口,因为登录后的响应是json格式,所以我使用的是json提取器获取token

从传参的要求来说,登录接口的HTTP信息头管理只需要Content-Type这一个参数,而查看设备日志接口不仅需要Content-Type参数,还需要Authorization这个参数,参数值是由固定的Bearer和token值拼接在一起的,如果在登录接口放入 Authorization参数,就会因为参数不对无法通过验证,所以我将登录和查看设备日志接口放到两个不同的线程组。将token设置成全局变量,使用Beanshell取样器设置全局变量。

三、查看设备日志接口

 

HTTP信息头管理器是这样配置的,有些地方放置定时器是因为请求应该按照顺序,先TCP请求,再登录,再查看日志,有时候靠后的请求会先于靠前的,这样就会请求失败,所以放置定时器进行延迟。所有的配置完成后,查看设备日志的响应结果是这样的

 设备编码是第一次发送心跳包的时候解析的,而“nihaO”是发送设备日志数据的消息内容,很显然解析成功了,整个配置参数、流程是正确的。

这是我第一次进行TCP接口的测试,也是第一次进行TCP接口与HTTP接口的联调测试,调通了很开心。

 

更多推荐

使用jmeter做物联网设备十六进制数据的解析接口测试

本文发布于:2023-04-25 09:06:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/f5adda877f17145c2ab559d271796fee.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:接口   测试   数据   设备   jmeter

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 102806文章数
  • 26166阅读数
  • 0评论数