• jmeter模拟用户随机模糊查询


        在性能测试过程中,碰到这样一个场景:一个搜索框,可用来搜索的类型有:“工号、姓名、英文名、邮箱、电话”等信息,每个类型的搜索都要支持模糊查询。虽然情况复杂,但这怎么可能难倒我们测试大大?开搞。

       分析:

    搜索框输入后,使用查询接口发送数据,发送的是JSON格式。

     { 

     "search": "string"
     }

        方法1.针对这样的情况,因为用户随机发送求,那么首先想到的是JSON中的值stirng用变量表示,用户可以自定义这些变量,然后用随机函数来获取这个变量。至于这个变量的值,则用随机函数来实现。

         ①、首先添加用户自定义变量,在http请求上右键点击添加-配置元件-用户自定义的变量

     ② 变量配置如下:其中u1表示工号,u2表示姓名,还有u3等

    ③ u1使用_Random函数,路径:菜单栏,Tools-函数助手对话框,选择一个功能:_Random,然后设置此函数的最小值和最大值,以及这个数的变量,点击“生产”就会生产一个函数,如图

    其他地方再调用此变量u1时,就会生产随机范围内的值。

     ④ name等其他变量,可用“CSV 数据文件设置” ,来从本机读取。

    ⑤ 那边就剩下随机读取u1到u5这5个变量了,笔者试了多个方法,都无法实现。例如发送的请求中,值也用函数:${__RandomFromMultipleVars(u1|u2|u3|u4|u5)} 来实现,结果后面调试时发,发现结果只能读取

     没办法,此路不通了,再还条路搞起。

     方法2:刚才的情况不行,无法随机读取变量,那么我们改进下,控制随机发送请求,不同的请求类型用不同的请求来实现:

        ①使用随机控制器。

        在线程组上右键点击添加-逻辑控制器-随机控制器

        然后,在此随机控制器下,添加不同的http访问请求:查询接口-姓名;查询接口-工号;查询接口-邮件等。每个请求的请求内容,可以用随机函数,也可以用CSV数据文件配置。

     

     

         ②线程组中,设置多个请求,在查看结果树中,查看请求结果,发现实现了,Perfect!

    3. 测试时还发现关于编码格式的问题:请求文本是中文,发送时,请求中看到读取出来是乱码,经分析是因为文档编码格式和配置中的编码不一致;

       另外还有发送的是中文,但返回数据为空,使用postman时是正常的。原因是因为发送的请求需要附件编码格式,使用UTF-8

        总结:测试出现了一些不常见的场景,不要怕,看怎么让工具来明白我们的思想,怎么用机器语言来实现我们的想法。

         另外,第一种方法,没实现想要的结果,也欢迎高手给出解决办法,谢谢!

  • 相关阅读:
    不同浏览器对于textarea中换行符的处理
    apache 页面压缩技术mod_deflate安装和配置
    php5+Apache2+mysql+Eclipse debug完全配置
    php程序的国际化(转载)
    PHP加载mysql DDL会失败
    mysql绿色版注册服务
    DEDE利用自由列表创建全站RSS订阅内容更新整站.xml文档
    PHP模拟多线程请求
    在Mac OS X中配置Apache + PHP + MySQL(转)
    ThinkPHP框架项目开发专题自动验证
  • 原文地址:https://www.cnblogs.com/jintianniu/p/13332298.html
Copyright © 2020-2023  润新知