JMeter | 介绍+环境+安装+使用

发表于:2017-11-20 15:58

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:susie酱    来源:51Testing软件测试网采编

  开发接口测试案例的整体方案:
  1.分析出测试需求,并拿到开发提供的接口说明文档;
  2.从接口说明文档中整理出接口测试案例(包括详细的入参和出参数据以及明确的格式和检查点)。
  3.和开发一起对评审接口测试案例
  4.结合开发库,准备接口测试案例中的入参数据和出参数据,并整理成csv格式的文件。
  5.结合接口测试案例文档和csv格式的数据文档,做接口测试案例的自动化案例开发。
  接口自动化适用场景:
  目前设计的自动化接口测试案例有两个运行场景:
  1.测试前置、开发自测:一个新的自动化接口测试案例开发完成后,直接发给接口对应的开发,安排在开发本地环境执行,一旦开发确认完成接口开发,就开始执行接口测试案例,基本上可以实时拿到测试结果,方便开发快速做出判断。【开发本地运行的方式就是打开JMeter工具,导入JMX文件,开始执行可。】
  2.回归测试:开发本地测试通过后,或整个需求手工测试通过后,把自动化的接口测试案例做分类整理,挑选出需要纳入到回归测试中的案例,在持续集成环境重新准备测试数据,并把案例纳入到持续集成的job中来,这些用于回归的接口测试案例需要配置到持续集成平台自动运行。
  3.JMeter用途
  负载测试:模拟多用户并发
  压力测试:测试max负载能力
  安装JMeter
  Jdk1.6或以上:
  [http://www.oracle.com/technetwork/java/javase/downloads/index.html]
  Jmeter,下载址址:[http://jmeter.apache.org/download_jmeter.cgi]
  插件的下载安装地址:[http://www.jmeter-plugins.org/]
  打开解压目录下的bin文件,运行ApacheJMeter,即可看到运行界面
  JMeter使用
  1.添加线程组,设置
  Test->Add -> Threads (Users) -> Thread Group
  a. Number of Threads: 100 (连接目标网站的用户数量)
  b. Loop Count: 10 (执行测试的次数)
  c. Ramp-Up Period: 100(告诉 JMeter 延迟多少秒才开始下一个user,设置为0的话意味着同时并发请求)
  2.添加HTTP request Default
  填写主机名或者IP地址,端口号
  protocal:发送测试请求时使用的协议
  server name or ip:被测试服务器的ip地址或者名字
  path: 默认的起始位置。比如将path设置为/jmeter,那么所有的http请求的url中都将增加/jmeter路径。
  port number: 服务器提供服务的端口号
  3.添加 HTTP Request
  Add ->Sampler->HTTP Request.
  4.添加信息头
  5.监听器Listener
  为了记录测试信息并且可以使用Jmeter提供的可视化界面查看测试结果
  6.Run->测试报表参数
  Aggregate Report聚合报告
  Latency:系统响应单个任务所需要的时间,即平均响应时间。
  Label :各个模拟测试的名称
  Samples :各个测试的样本总数
  Average :每个请求的平均响应时间
  Median :中值,即50%请求的平均响应时间
  90%Line :90%请求的响应时间
  Min :最小响应时间
  Max :最大的响应时间Error% :错误响应的概率。即无法响应的概率。
  ThroughPut :吞吐量 -- 默认情况下表示每秒完成的请求数(Request per Second)。
  KB/Sec :每秒从服务器端接收到的数据量
  View Results Tree
  查看每个请求的详细内容,可选中error只记录报错的信息
  7.加载已存在的元素
  TestPlan->Merge,选中已存在的XX.jmx,导入即可。节省时间
  8.关于保存
  保存element:只保存一个
  保存test plan:会保存所有的组件
  9.合并多个测试计划
  已建测试计划的条件下,marge另一个计划会变成多测试计划
  Timer定时器
  设置1个user,重复100次,constantTimer里线程延迟5000ms,运行,观察表格结果
  sample1 的开始时间:18:38:55.276
  sampleTime:175ms
  延迟时间:5000ms,
  以上相加=18:39:45,所以sample2的开始时间是18:39:46
  Assertion断言
  1.Response Assertion:响应断言
  ApplyTo适应范围:一般选“main sample only”
  只当请求触发多个服务器的时候,或者勾选自动重定向且接口302重定向时,有main sample(最后的请求)和sub sample(之前的请求)之分
  响应文本:
  响应header:
  响应代码:
  !当要验证404、501等http相应代码,需勾选“ignore status”
  2.Duration Assertion:相应持续时间断言(断言响应时间不大于XX)
  3.Size Assertion:比较响应的字节大小
  4.XML Assertion:
  Controller
  Recording Controller
  录制测试步骤
  Simple Controller
  user请求的容器
  Loop Controller
  控制循环次数
  random Controller
  随机发送请求,假设线程组(user1,LoopCount1),循环控制器(LoopCount50)-->结果发送请求数=100
  Module Controller
  多个功能存储在一个模块里面,模块选择器选择特定模块进行运行
  处理器
  1.前置处理器:在sample请求之前执行
  2.后置处理器:在请求之后执行
  设置线程10,重复10次,后置处理器->Result Status Action Handler->取样器错误之后“立即停止”->运行
  请求( “www.google/abc” ),结果表格查看- > 只发送了10个请求
  正则表达式提取器
  3.提取出变量
  4.在文件头管理器可以引用该变量
  5.正则表达式写法
  (1)引用名称:下一个请求要引用的参数名称,如填access_token,下个请求用${access_token}引用
  (2)正则表达式:
      ():括起来的部分就是要提取的。
      . :匹配任何字符串。
      +:一次或多次。
      ?:在找到第一个匹配项后停止。
  (3)模板:用$$引用起来,如果在正则表达式中有多个正则表达式,则可以是$2$$3$等等,表示解析到的第几个值给token。如:$1$表示解析到的第1个值
  (4)匹配数字:0代表随机取值,1代表全部取值,通常情况下填0
  (5)缺省值:如果参数没有取得到值,那默认给一个值。
  连接数据库
  http://jmeter.apache.org/usermanual/build-db-test-plan.html
  ~~之后再补充吧
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号