MeterSphere JMX文件导入异常及处理

目前MeterSphere许多企业版用户在使用过程中,都有基于自己本地jmeter创建测试脚本,而jmeter灵活性很强且有众多扩展插件支持。MeterSphere本身也是支持jmeter5.2~5.4版本的存量jmx脚本导入,但是导入过程遇到失败或者执行过程遇到失败的情况比较普遍,现就针对存量jmx文件导入遇到的问题做一些记录

一、导入过程中出现的问题

metersphere在导入jmeter的存量jmx文件出错可能有以下几种情况:

情况1:jmx脚本中采用jmeter扩展插件中的组件,比如MQTT插件及websocket插件等等。
处理方式:将jmeter扩展插件包从本地上传到服务器中ms-server容器的/lib/apps目录下,然后执行 docker restart ms-server ,在界面重新导入。
缺点:此种处理方式一旦ms-server容器重新创建,则原有的扩展包需要重新导入新建的ms-server容器内才能使用。

情况2:原有jmeter版本过低,导致存量jmx文件导入报错
处理方式:先将原有的jmeter版本升级,再将jmx脚本导入新版本jmeter,重新验证保存成新版本的jmx文件,再导入至metersphere

二、执行过程中出现问题

情况1:执行过程中,出现csv文件或者其他类型文件找不到
处理方式:1、上传文件到场景变量及项目内上传jar包
2、修改jmx文件,遇到文件的将其本地路径修改为只保留包名或者文件名

情况2:执行过程中,jmx中script脚本出现错误,导致执行数据变量串不起来
处理方式:1、将原有的BeanShell PreProcesser调整为JSR223 PreProcesser,目前MS首选为后者
2、导入的过程中,格式出现问题,可以把脚本拷到本地编辑器内进行修改转换

情况3:执行过程中有些外部函数例如MD5之类加密函数,导入之后执行出错
处理方式: 将此类函数修改为jmeter自带函数或者通过前后置脚本或者自定义脚本的方式去执行引用

情况4:执行过程中有些文件不支持上传,例如js文件
处理方式:将文件直接上传到服务器/opt/meterspher/data下,然后再采用脚本的方式去load引用

情况5:执行过程中请求的参数或者URL被转义或者转换有问题
处理方式:按照MeterSphere的参数处理方式重新进行调整