IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 软件测试工程师进阶技能工具篇——jmeter性能测试实战 -> 正文阅读

[开发测试]软件测试工程师进阶技能工具篇——jmeter性能测试实战

1、在Apache 官网下载JMeter

官网地址:https://www.apache.org/

2、在Oracle官网下载jdk

官网地址:https://www.oracle.com/

3、设置环境变量

3.1变量(variables):

变量是一段有名字的存储空间,在源代码中通过定义变量来申请并命名这样的存储空间,并通过变量的名字来使用这段存储空间。变量是程序中数据的临时存放场所;在代码中可以只使用一个变量,也可以使用多个变量;变量中可以存放单词、数值、日期以及属性。

3.2环境变量(environment variables):

一般是指在操作系统中用来指定操作系统运行环境的一些参数;如:临时文件夹位置和系统文件夹位置等。环境变量是在操作系统中具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。

(例如Windows和Dos操作系统中的Path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到Path中指的路径去找,用户通过设置环境变量来更好的运行进程。)

3.3全局变量(Global):

全局变量是编程术语中的一种,源自变量之分;变量分为局部或全局,局部变量又可称为内部变量,由某个对象或某个函数所创建的变量,通常都是局部变量;只能被内部引用,而无法被其他对象或函数引用。全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建;全局变量是可以被本程序所有对象或函数引用。

3.4局部变量(Global Variables):

是指在程序中只在特定过程或函数中可以访问的变量,局部变量是相对于全局变量而言的。

4、录制脚本

配置完成后进行脚本的录制,JMeter录制脚本的方式有三种:

1.JMeter自带的http代理服务器进行录制:首先配置线程组,在线程组中添加录制控制器,添加非控制原件http代理服务器,端口号默认8888,点击录制;打开浏览器,设置个人代理,本机个人代理127.0.0.1端口号8888,输入要录制网站的IP进行录制。录制完成后脚本保存在录制控制器之下;

2.使用第三方工具badboy进行录制,下载badboy打开后输入IP进行录制,录制完成后点击导出JMeter jmx文件,选择保存路径,输入文件名.jmx;打开JMeter添加文件名.jmx文件;

3.采用手写脚本的方式(手写的方式有一个好处是录制下来的脚本特别干净,弊端是如果对软件不太了解的情况下会有遗漏);首先添加配置原件http cookie管理器、http请求默认值、线程组、http请求。

4.1 http请求默认值

脚本中每个请求会有很多共同的地方,比如协议类型、服务器地址或IP、端口号和编码格式,所以会有很多的重复输入,http请求默认值会省去这些重复输入的项,将重复输入的项填写在http请求默认值中,供每一条请求获取,等同于全局变量。

4.2 http cookie管理器

http cookie管理器是让线程组运行的时候有cookie在取样器中产生,如果没有cookie的存在那么每条取样器都只是独立运行,不会产生关联,因为JMeter的工作原理是以协议的形式模拟事务,所以必须有cookie运行的请求才能模拟;http cookie管理器中有个必选项就是 每次运行反复清除cookie,如果循环运行不清除cookie,那么线程组循环运行的时候,会当成一个事务,而且还会侵占大量内存。

4.3 线程组

线程组:线程组是线程的起点,每个取样器都会属于一个线程,一个线程下可以有多个取样器,线程组是单线程多进程的形式。

4.4取样器

取样器有很多种,工作中用到的请求协议类型是http和https,所以添加http请求。

以*宝的【首页→登录→发送登录请求→返回首页→查看第二件商品】为例,模拟100个用户重复登录五分钟,添加断言技术和进行参数化:

  1. 打开JMeter添加http cookie管理器,选择每次运行重复清除cookie;
  2. 添加http请求默认值,协议类型:https 服务器地址或ip:*bao.com 端口号:443 编码格式utf-8;
  3. 添加线程组,设定线程数100 ?Rump-up:10 循环次数:永久 调度器:300秒;
  4. 添加五个取样器:http请求:

4.1第一个请求填写名称:首页、方法-get、路径/首页;

4.2第二个请求填写名称:登录、方法-get、路径/登录;

4.3第三个请求填写名称:发送登录请求、方法-post、路径/发送登录请求;参数:username_001,password_123456, act _act-login,back-act_*bao.com/首页,submit_为空,(用浏览器打开登录页面,按F12后发送登录请求快速抓包可以获取参数);

4.4第四个请求填写名称:返回首页、方法_get、路径/首页、添加响应断言,登录成功后会提示登录成功或欢迎回来,写入断言中,设置响应文本和包含;

4.5第五个请求名称填写:查看第二件商品、方法_get、路径;F12快速抓包获取资源的ID和路径填写即可。

5、参数化:

5.1.新建文本文档,写入username,password(注:每个用户密码为一行,用英文的逗号隔开)分别写入用户名和密码,保存为英文名称.csv文件;

5.2在JMeter图形界面中添加配置元件,csv文件设置管理,添加英文名称.csv,其他都是默认设置不需要改写;在第三条请求发送登录请求中设置参数,username ${username} password ${password};设置完成后保存脚本为英文名称.jmx文件。

6、断言:

添加响应断言,“apply to”选择“Main sample and sub-samples”(主请求和自请求);“测试字段”新选择“响应文本”;“模式匹配规则”选择“包括”;添加断言响应包含内容。

7、负载运行:

1.打开cmd命令运行窗口输入cd英文名称.jmx的保存路径回车;

2.打开JMeter所在磁盘;

3.输入命令JMeter -n (非图形化界面)-t 英文名称.jmx(输入文件,脚本) -l英文名称.jtl(输出文件 JMeter text log缩写)回车;

4.开始运行:随机生成两个文件JMeter.log和JMeter.jtl;

5.等待五分钟运行结束后后打开JMeter添加监听器:聚合报告或图形报告,分析参数请求数量、平均响应时间、最大值、最小值、错误量、每秒请求数、吞吐量;

6.如果有报错,JMeter.log中查找。

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-12-13 13:09:53  更:2021-12-13 13:11:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 6:20:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码