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上传文件即可。

  • 相关阅读:
    软件工程——第一次作业
    软件工程结对编程第二次作业
    软件工程结对编程第一次作业
    软件工程第三次作业
    软件工程第二次作业
    软件工程第一次作业
    阿里云服务器ECS WindowsServer2016配置IIS遇到的坑
    微信小程序跳坑指南——小程序上线半年后遇到的坑总结
    VS2013 RC 此模板尝试加载组件程序集 “NuGet.VisualStudio.Interop, Version=1.0.0.0, Culture=neutral.........
    Mysql主从复制原理及配置
  • 原文地址:https://www.cnblogs.com/wangguoyuan-09/p/6849880.html
Copyright © 2011-2022 走看看