物联网设备管理平台性能测试经验总结(四)—— 准备测试插件/脚本/数据

测试插件、脚本、数据的准备是互相耦合的,在准备时需要同步考虑。

  • 开发测试插件

在考虑开发测试插件前,需要先根据业务确定开发需求。举例来说,对于MQTT协议,github上已有可用的插件,但如果平台有自定义的业务流程,仍需要定制开发插件。因此,首先需要根据业务梳理新增开发需求。

Jmeter支持JAVA扩展插件包,将开发的新插件放在/lib/ext目录下即可使用。

  • ​​​​​​​调试测试脚本

测试脚本可以根据测试用例来编写。编写测试脚本需要对Jmeter提供的元件作用有详细了解,如取样器、断言、监听器、后置处理器等,各种元件灵活组合应用来实现脚本,另外脚本中的各种可调参数,如等待时间、断开时间需要根据实际测试过程中进行调节,因此最好将这些参数暴露出来,写在用户定义的变量中。

  • ​​​​​​​准备测试数据

性能测试意味着要模拟大量的用户操作,这些用户数据需要提前进行准备。

假设系统需支持百万级设备接入,那么需准备百万设备的数据。大量数据的读入,会影响脚本的性能,因此在准备测试数据前,在不影响测试的前提下,考虑某些字段是否可以设置成一样的值,这样避免某些字段必须通过CSV文件读取。

举个例子来说,某场景需要填入七个字段,这些字段分为以下三种情况:

  1. 在不影响测试的前提下,某三个字段可以通过业务规则设置成一样,将其固定写入脚本中;
  2. 某两个字段可以在数据表中导出;
  3. 某两个字段需要根据流程规定通过字段步骤2中的字段计算得出(采用PYTHON脚本自动计算生成CSV)

要从数据库中导出百万的数据,首先需要将数据添加到平台上,首选是直接对数据库操作,但如果数据库有些字段需要系统生成,则可以用PYTHON脚本自动调用后端接口来实现。

编写数据添加脚本时考虑以下几个因素:

  1. 参数可配:一些需要指定的参数开放到命令执行语句配置,如添加设备数量等;
  2. 并发执行:通过多线程调用接口,加快添加速度;
  3. 异常处理:有时调用接口会出现异常,导致程序中断,应加入重试机制。

你可能感兴趣的:(物联网设备管理平台性能测试)