六、Jmeter 基础-脚本实战、巩固知识
本文通过一个稍复杂脚本,会使用最常用的元器件(不了解的可以去看前五篇),巩固下对元器件的掌握情况,开始吧!
确定脚本内容
此次脚本实战系统是我自己开发的平台,选其中一个小业务,进行设计自动化脚本:
登录获取token
信息头加入token认证(我平台的认证Authorization:Basic+空格+(token+":")的base64编码,大家的需要自己搞清楚)
创建项目
PS:接口获取途径(抓包工具,接口文档,浏览器F12),本文 通过浏览器F12获取接口
大家可以自己找一个被测系统,选一条业务进行练习,本文讲解的是思路,大致脚本编写都按照这个模式去写即可。
脚本编写
搭好框架:创建线程组>添加监听器(查看结果数,聚合报告)
登录
抓包获取到登录接口的信息,开始编写Jmeter脚本:添加HTTP请求,并且配置参数如图
运行下脚本,发现报错了
敲黑板,说重点,发现错误不要急,调试步骤大致分为三步:
1.请求接口地址对不对---在结果树的请求一栏中可以看到
2.请求参数对不对---在结果树的请求一栏中可以看到
3.信息头对不对---在结果树的请求头中可以看到
我们一步步检查,发现前2步没问题,问题出在信息头,传的是json数据,然而没指定Content-Type为JSON,后台无法接收需要参数,故报此错误。
经验所得:系统正常的情况下,遵循三部,能解决90%的问题
添加信息头,继续执行,观察下结果数的响应,成功取的token
登录步骤详细介绍:获取接口,编写脚本,调试脚本,下面步骤只讲重点。
token提取和编码
之前介绍过,信息头Authorization的值为:Basic+空格+token的base64编码
1.我们使用JSON提取器要把token提取出来
2.新增一个HTTP信息头管理器,加入Authorization(运行脚本后和上一次的信息头会合并),利用内置函数__base64Encode对token编码
3.试下获取首页数据
创建项目
直接根据获取到的接口信息配置一个HTTP请求,取名为“创建项目”,配置信息如下
脚本优化
上文已经利用简单控制器,事务控制器进行了脚本分组,层次结构看起来很舒服。
我们还可以通过用户自定义变量和HTTP请求默认值来进一步优化脚本
- 用户自定义变量
我们把登录的用户名,密码,项目名,ip,端口进行参数化,可以起到统一维护的作用,然后把下面写死的变量通过${变量名}的方式引用
- HTTP请求默认值
万一切换测试环境,你又写死在每个HTTP请求中(假设有好几十个),改起来是多痛苦,还可能出错,使用HTTP请求默认值,改一下即可
总结
本节实战了一个接口之间有关联关系的业务,也运用到了前几节介绍过的大部分元器件,工作中,只要按照这种方式一步步去组合,相信再复杂的脚本也难不倒你。
本文介绍了内置函数__base64Encode,后面的教程会对Jmeter内置函数进行介绍(当然选高频使用的进行讲解)