| |
|
开发:
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个用户重复登录五分钟,添加断言技术和进行参数化:
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 获取客户端地址 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |