本文通过一个稍复杂脚本,会使用最常用的元器件(不了解的可以去看前五篇),巩固下对元器件的掌握情况,开始吧!
此次脚本实战系统是我自己开发的平台,选其中一个小业务,进行设计自动化脚本:
登录获取 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 内置函数进行介绍 (当然选高频使用的进行讲解)