zoukankan      html  css  js  c++  java
  • Jmeter接口测试自动化 (三)(数据驱动测试)

    本文转载至http://www.cnblogs.com/chengtch/p/6105532.html

    当我研究要通过用例优先级控制用例是否执行时,我发现了用"如果(if)控制器"就可以很好的控制用例执行,再搭配“循环控制器”,

    就能很好的读csv了。

         1、设计了如下的测试用例:

              

         2、根据用例设计脚本结构:

                          

          3、测试用例与脚本之间的关联:

               3.1 通过csv读取元件读取测试仪用例表格的每一行

                     

               3.2 http请求中关联用例的参数

                     我这里尝试着仅用一个http请求来依次 参数化执行所有用例,因此将请求名称、请求方法、请求参数等做了参数化:

                     

                     因为get请求不能放在body data里面,所以放在路径后面:

                     

                3.3 if控制器来选择执行方式和选择执行路径

                     3.3.1 为了先判断用例的请求方法时get还是post,再按结果去执行对应的请求,做如下设置: 

                              

                     3.3.2 通过用例优先级选择是否执行

                         

      

            4、执行测试,查看结果

                 如下图可以看出:

                 (1)脚本只执行了优先级为high和normal的用例

                 (2)如果控制器很好的选择的正确的请求方法和参数传入方式

                 (3)虽然只有一个http请求,请求名参数化的方式很好的将测试接口的编号、名称、测试目的展示了出来,便于错误调试

                 

            5、总结

                    上面只是做了一个几条用例的demo来验证我的新想法,暂时看是蛮顺利。但当考虑到要用正则表单式来提取请求返回值作为后面用例的

                 参数,我又遇到了困难,如上图中的提交办件用例,用到启动办件用例的响应,但没法传过来。

                    暂时想到的解决方法:

                            (1)为尽量减少接口用例之间的耦合性,避免将前一请求的响应作为后面请求的参数

                            (2)无法避免的地方,另建线程组,通过加入多个http请求来测试简单流程

                    现在看来前面做的读取指定行的用例时全无必要的,if控制器君完全可以代劳。。。

  • 相关阅读:
    ofbiz定时任务配置
    MySQL重置root密码
    谷歌默认最小字体解决方案
    CSS样式-文字在一行内显示不换行,超出部分用省略号(white-space、overflow、text-overflow、word-wrap、word-break)
    使用gulp自动化打包合并前端静态资源(CSS、JS文件压缩、添加版本号)
    JS判断两个日期是否为同一周
    AES、DES加解密方法(Java和JS编程)
    Nodejs代理解决开发环境下跨域问题
    js的垃圾收集机制以及写代码如何处理
    手机端黑屏时定时器无法执行
  • 原文地址:https://www.cnblogs.com/111testing/p/6412173.html
Copyright © 2011-2022 走看看