zoukankan      html  css  js  c++  java
  • jmeter进行的接口测试和压力测试

    1.接口测试

    接口测试的内容我们之前已经讲过,values-key形式和json串传参形式;

    包括的协议有http,webservice(soap),jdbc数据库,java请求

    2.参数化

      定义:把固定的一个值,变成动态、可变的数组,把数组的值进行值传递。数组大小可控制。

      1)使用函数助手的_random函数进行参数化设置;

      2)使用配置原件CSV Data Set Config进行参数设置;

       策略:

       Sharing mode:参数化取值策略

       All threads                                唯一+每次迭代

       Current thread group                  基于每个线程组下的唯一+迭代取值(不同线程组是顺序取值,一个线程组是唯一取值)

       Current thread                            顺序+每次迭代   如果多线程之间值是重复的,那么就是顺序,每个线程之间没有重复,就是唯一

    3.为什么参数化

      1)数据库校验字段值的唯一性。(数据库修改字段的唯一性,可避免参数化)

      2)应用程序不允许用一个值反复操作。(开发调整不允许一个值反复操作,可避免参数化)

      3)避免数据库的查询缓存,保证测试结果的真实性。(数据库在执行一条SQL查询操作时,先进行语法检查、语义分析(写法是否正确、表是否存在、是否有权限),生成执行计划,按执行计划做查询操作,如果查询的数据在数据库内存,返回数据;如果不在内存,需要从硬盘里把数据放到硬盘,返回数据,同时会缓存这条SQL的执行计划和结果。如果同样的查询操作,就直接在查询缓存里返回)(数据库关掉缓存,可避免参数化)

    3.关联

       定义:将服务器返回的、动态的、变化的值,把它保存为一个参数,以便后面需要使用这个参数的地方进行使用

      1)使用后置处理器正则表达式提取器

      2)json实现,在body Data中输入json入参

    4.为什么关联

      1)服务器校验该值的合法性;

       例子:session、cookie、token、时间戳(formhash等)、验证码(图片验证码、短信验证码、邮箱验证码等)等等。验证码(①.自己写JS,解析图片,获取验证码;②.改成万能验证码)。请求成功不代表业务测试成功,要注意看回放页面是否有报错。

      2)数据库,后续需要对该值进行增删改查操作。(一定是int类型的数字)

           例子:insert操作            插入的值需要与其他表的数据建立关联关系/对应关系,需要进行关联。

                   delete操作           看请求里非手动输入的ID有多少个即可确认是否需要做关联。

                   update操作          where条件

                   select操作            where条件

    5.压力测试

      1)首先接口脚本需要调试成功(增加断言,查看结果树等);

      2)设置压力测试场景,可加远程负载机,设置并发,时间段;

      3)添加聚合报告,运行场景,观察TPS,RT,并发,根据研发需求而评定,也可以使用2/8原则

    6.上传文件

    使用filed upload上传文件即可。

  • 相关阅读:
    HDU 5213 分块 容斥
    HDU 2298 三分
    HDU 5144 三分
    HDU 5145 分块 莫队
    HDU 3938 并查集
    HDU 3926 并查集 图同构简单判断 STL
    POJ 2431 优先队列
    HDU 1811 拓扑排序 并查集
    HDU 2685 GCD推导
    HDU 4496 并查集 逆向思维
  • 原文地址:https://www.cnblogs.com/wangguoyuan-09/p/6849880.html
Copyright © 2011-2022 走看看