接口问题汇总

一、jmeter问题

  • jmeter处理大文件,或者返回数据过大就很卡,这种情况更适合用metersphere

二、metersphere问题

  • metersphere请求参数需要转义,但是如果参数里面还有转义就容易导致json格式问题(具体原因貌似是因为用了fastjson转义导致的),这种情况用数据库插入数据是最简单的。不然的话就需要多重转义+替换的形式去试探。常见的如两次转义后“\\”替换成“\\\”。

  • 在metersphere中json文件如果直接复制后通过一些在线json转义压缩工具得到的字符串去请求是会失败的(就算成功了内容也是错误的),要先通过正则去掉缩进,再通过s.replace('"','\\"')的方式替换转义(去除转义是s.replace('\\','"'))。

  • metersphere的foreach循环并不会循环列表中的每个变量,它是根据列表变量元素的个数循环第一个元素变量对应次数,比如一个列表变量times=[1,2]两个元素,那会循环两次,每次循环的都是1,这个时候需要对这个变量重新赋值(这里在累加):

    String a = vars.get("time");
    int z = Integer.parseInt(a) +1;
    vars.put("time", z.toString())
    
  • metersphere脚本beanshell和groovy还是有差别的,切记java脚本一定要选groovy才行。

  • metersphere就算你设置了token变量并在其他请求中获取了,还是会报错,还需要勾选共享cookie

  • metersphere不能同时打开多个窗口,会导致数据丢失,希望新版本解决这个问题。

  • metersphere性能测试有两个场景的时候,必须先导入一个保存了再导入第二个场景,且严格按照图中的步骤(2,3顺序好像反了),不然会导致执行顺序反了(补充:像这种两个场景的性能场景第二个场景调试的时候可以先把第一个场景引用到第二个场景,调试完再删除)

  • metersphere能用beanshell的就少用groovy,因为metersphere的工程师支持beanshell和python语法多一些,groovy少,存在一些语法不兼容的情况。比如我自定义脚本在循环中容易导致第二次循环产生的变量获取不到,改成beanshell就能获取到新的变量。

  • beanshell脚本语法需要用;来分割,不然会报错Encountered "code" at line...,但是groovy不用。

posted @ 2021-12-04 15:37  阿根的园子  阅读(370)  评论(0)    收藏  举报