栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Jmeter入门-2

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Jmeter入门-2

1、接口测试分类
     内部接口:测试被测系统个子模块之间的接口,或者北侧系统提供给内部系统使用的接口
     外部接口:1>被测系统调用的外部接口
                       2>系统对外提供的接口
      接口测试要点:
          检查接口参数传递的正确性,接口功能的正确性,输出结果的正确性
          以及各种异常情况的容错处理,权限控制、分页、调用次数的限制;
2. 目前接口结构的设计
      <1>.基于SOPA结构,基于XML规范,基于WebService协议
              特点:接口地址以?wsd结尾
      <2>.基于RPC架构,基于dubbo协议,thrift协议,springcloud微服务
      <3>.基于RestFul架构,基于http协议,基于json规范--->市场占有率高
        RestFul规则:
         接口地址:http://127.0.0.1/user,get(查询用户),post(新增用户),put(修改用户),  delete(删除用户)
      json数据格式,只要两种类型:
         键值对:[key:Value]
         数组:[arry1,arry2]
   4、http详解
        请求:请求行,请求头,请求正文
         请求行
      post http://192.168.5.68 /phdwind/index.php?m=U&C=login&a=dorun HTTP/1.1
        请求头
      Host:192.168.5.68 (请求主机)
      connection:keep-alive(连接保持活跃)
      content-length:112(内容长度)
      Accept:application/json.tct/javascript,*/*;q=0.01(数据格式)
      X-Requested-with:XMLHTTPRequest (异步请求)
      User-Agent:Mozilla/5.0 (Windows NT6.1;Win64;X64)AppleWebkit/537.36(KHTML,like Gecko)chrome/9.1.1.4472.124 Safari/536.36 (客户端类型)
      Content-Type:application/x-www-form-urlen coded;charset=UTF-8 (内容类型)
      Origin:http://192.168.5.68
      Referer:http://192.168.5.68 /phpwind/index.php?m=U&C=login&a
      Accept-Encoding=gzip.deflate
      cookie:csrf_token=e117c906125a0868; (cookie信息,客户端发送给服务器的cookie)
      WN9_Vistor=......
      WN9_lastvisit=......
      
      
      请求正文(中间空出一大行)
      username=msxy&passsword=......
      
      响应:响应行,响应头,响应正文
      响应行
      HTTP/1.1 200 OK
      响应头
      server:nginx
      Date:Tue,24 Aug 2021 12:23:12 GMT
      content-Type:text/html;charset=UTF-8
      Transfer-Encoding:chunked
      connection:keep-alive(连接保持活跃)
      X-Powered_By:PHP/5.6.36
      Set-cookie: (服务器发送给客户端的cookie)
      WNq_Lastvisit=150%09.....
      content-Encoding:gzip
      vary:Accept-Encoding
      响应正文
      .....
      .....
      .....
3. 市面上的接口测试工具(主流框架)
    Jmeter + Ant + Git + Jenkins     
    Postman + Newman + Git + Jenkins
4. Jmeter简介
    基于Java语言的压力测试工具,可以做接口测试,也可以做性能测试
5. Jmeter目录介绍
    <1>backups:脚本备份目录,格式jmx
    <2>bin目录:存放Jmeter的启动脚本、配置文件、模块文件
          jmeter.bat 启动jmeter
          jmeter.properties
    <3>docs目录:离线帮助文档
    <4>extra目录:存放第三方的集成构建文档,集成Ant、Jenkis
   <5>lib目录:存放jar包
    <6>license:许可证文件
6. Jmeter常用组件
    <1>测试计划:起点,所以组件的容器
    <2>线程组:代表一定数量的用户
    <3>取样器:向服务器发送请求的最小单元
    <4>逻辑控制器:结合取样器实现一些复杂的逻辑
    <5>前置处理器:在请求之前的工作
    <6>后置处理器:在请求之后的工作
    <7>断言:用于判断请求是否成功
    <8>定时器:负责在请求之间的延迟间隔、固定、高斯、随机
    <9>配置文件:配置信息
    <10>监听器:负责收集结果
   顺序:测试计划-->线程组-->配置元件-->前置处理器-->定时器-->取样器-->后置处理器-->断言-->监听器
   作用域:
      必须组件:测试计划、线程组、取样器
      辅助组件:除了必须组件之外
   注:辅助组件作用于父组件、统计组件、以及同级组件下的所有子组件
7. Jmeter接口测试的执行
    <1>拿到API接口文档(无接口文档,可使用Fiddler抓包),熟悉接口业务、接口地址、鉴权方式、入参、出参、错误码
   <2>编写接口测试用例
      测试思路:
      正例:输入正确的入参,查看接口返回是否成功
      反例:
           鉴权:空、错误、鉴权过期、鉴权次数限制等
           参数:空、错误的类型、错误的长度、错误码的覆盖等
           其他:黑名单、分页等
   <3>使用接口测试工具执行
   <4>Jmeter+Ant+Git+Jenkins 实现持续集成输出接口测试报告
8. 接口测试例子
   <1>线程组
      1.线程属性:线程组-->加载用户数
                  Ramp-UP时间-->多长时间内执行完线程组内所有用户
                  循环测试
        请求-->从第1->n次每次都带上cookie,客户端-->服务器
        响应-->只有第1次发送cookie,服务器-->客户端
      2.配置元件
         1>http cookie管理器-->作用:第一次服务器->客户端带上cookie,后面自动带上客户端->服务器的cookie
         2>http请求默认值
             http协议-->默认80端口
             https协议-->默认443端口
             一般设置协议 + IP + 端口
         3>用户定义的变量
         4>http请求
           协议 + IP + 端口-->若不添加则使用Http请求默认值中的配置
           自动重定向-->在重定向是只会跳转到最后结果
           跟随重定向-->重定向过程中的每一个细节均会记录下来
           对post使用Multipart|form-data-->发送post请求是,使用这种方式发送文件
           
           
    鉴权码:
     1.通过接口获取,appid,secret
     2.登录之后自动生成,uername,password
     
    取样器结果页面详解:
    
      Thread Name:线程组 1-1 -->线程组名称
      Sample start:2021-09-30 21:12:30 CST -->开始时间
      Load time:232 -->加载时间
      Connect Time:117 -->连接时间
      latency:232 
      Size in bytes:343 -->传输字节数
      Sent bytes:229 -->发送字节数
      Headers size in bytes:149 -->请求头字节数
      Body size in bytes:194 -->Body字节数
      Sample count:1 -->第一个请求实例
      Error count:0  -->错误
      Data type("txt"|"bin"|""|):test -->数据类型
      Response code:200  -->响应码
      Response message:OK  -->响应信息
      
      
      HTTPSampleResult fields:
      ContentType:application/json:encoding=utf-8 -->编码方式
      DataEncoding=null
      
      注:参数和消息体数据不能共存
      
9. Jmeter接口关联
    <1>使用正则表达式实现接口关联
          1.正则表达式提取器-->可以作用于任意值
             引用名称 -->需要取值的字符串名称
             正则表达式:"access_token":"(.*?)"
             模板:$1$ -->表示去第1个正则表达式,
                        $1$,$2$ -->取第1,2个正则表达式
             匹配数字(0代表随机):1 -->代表取第一个值
            缺省值:-->没有取到值时,会取默认值
         2.添加调试取样器
            -->判断正则表达式是否取到值,能看到全局变量详细结果
    <2>使用Jsonpath表达式实现接口关联
          从根目录开始找(绝对路径):$.expires_in  -->字符串名称,会随着情形改变
          从任意目录开始找(相对路径)$..expires_in 
          后置处理器-> Json提取器
          Name of created variables:  -->取值字符串名称
          Json Path expressions:$..expires_in -->Json表达式
          Math No.(0 form Random):1 -->代表第一个值
          Default values: -->没有取到值时,会取默认值 -->只能用于返回值是json格式的
10.实现接口业务的闭环
    增、删、改、查
    
    创建接口标签 -->标签名不能重复
     {“tag:{"name": "456321"}}
     
       --"456321"-->Tools->函数助手对话框
       -->选择一个功能(_Random)-->最大值、最小值、变量名-->生成-->拷贝并粘贴函数字符串中生成的替代就可以实现标签名的不重复,多次执行
11. Jmeter动态参数处理
      随机数字:$(_Random (10000,99999,random_int)
      随机字符串:$(_Random string (6,abcdefg13456,random_str)
12.Jmeter 接口测试断言
      响应文本:返回的Json数据
      响应代码:200,404
      响应信息:OK
      文档(文本):返回的json数据以文本的方式取判断
      忽略状态:当有多个断言是,如果有断言失败了,其中一个成功了,结果依旧是成功
      请求数据:-->需要断言什么
      字符串:响应内容包含需要匹配的字符串,大小写敏感,不支持正则表达式
      包括:响应内容包含需要匹配的字符串,大小写敏感,支持正则表达式
      匹配:响应内容完全等于需要匹配的字符串,大小写敏感,支持正则表达式
      相等:响应内容完全等于需要匹配的字符串,大小写敏感,不支持正则表达式
      否:取反
      测试模式:-->代码写去其中
13.Jmeter接口测试调试方案
    <1>通过查看结果树里面的请求信息和响应信息
    <2>使用调试取样器
    <3>jmeter结合Fiddler -->没有接口文档,所有接口通过抓包工具实现
    
     设置Fiddler代理
      http请求-->高级-->代理服务器(IP->本机IP,端口:8888->fiddler默认监控端口)
14.CSV参数化的处理
      

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/601774.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号