性能测试工具 六、Jmeter 基础-脚本实战、巩固知识

Maple · 2020年01月14日 · 1395 次阅读

本文通过一个稍复杂脚本,会使用最常用的元器件(不了解的可以去看前五篇),巩固下对元器件的掌握情况,开始吧!

确定脚本内容

此次脚本实战系统是我自己开发的平台,选其中一个小业务,进行设计自动化脚本:
登录获取 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 内置函数进行介绍 (当然选高频使用的进行讲解)

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册