测试工程师的技能,软件测试工程师进阶技能工具篇――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个用户重复登录五分钟,添加断言技术和进行参数化:

打开JMeter添加http cookie管理器,选择每次运行重复清除cookie;

添加http请求默认值,协议类型:https 服务器地址或ip:*bao.com 端口号:443 编码格式utf-8;

添加线程组,设定线程数100Rump-up:10 循环次数:永久 调度器:300秒;

添加五个取样器:http请求:

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

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

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

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

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

5、参数化:

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

5.2在JMeter图形界面中添加配置元件,csv文件设置管理,添加英文名称.csv,其他都是默认设置不需要改写;在第三条请求发送登录请求中设置参数,username $ 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中查看详情。

测试自动化工程师的基本技能 - 知乎转行测试工程师需要具备哪些技能? - 知乎技能自检 | 想当测试Leader,这6项技能你会吗?_牛客博客2022软件测试技能 Mysql数据库必会知识点总结_xmfboss的 ...测试自动化工程师技能评估测试软件测试工程师——你不仅仅应该会点点点_程序员威子的博客 ...验证工程师成长之路 ---- 需要掌握的技能_Lucas plus的博客 ...软件测试工程师进阶技能工具篇——jmeter性能测试实战测试开发必备技能:安全测试漏洞靶场实战_TEST_二 黑的 ...一个优秀性能测试工程师需要具备的技能测试工程师必备技能之缺陷分析38张IT工程师技能图谱软件测试工程师的工作总结好的测试工程师应具备的素质[1]软件测试工程师简历模板_JL1302.doc优秀软件测试工程师应具备的职业素质一名渗透工程师所必备的技能(一)转型产品经理-基础篇-转为测试工程师转型定制软件测试工程师的修炼之道浅谈测试工程师必备软技能:沟通表达篇软件测试工程师面试题精选高级软件测试工程师简历-.doc2020年软件测试工程师需要具备的技能--需要学什么--面试题有哪些(灵魂拷问)芯片测试工程师岗位职责程序员技能树——安全工程师技能图谱软件测试工程师的个人年度工作总结.doc测试工程师职业发展漫谈测试工程师需要掌握的技能IT工程师技能图谱思维导图39套(高清).zip做好测试工程师需要学习掌握的技能软件测试工程师经典面试题硬件测试工程师发展前景_计算机硬件测试工程师_硬件测试工程师职责软件测试技能导图.xmind软件测试工程师简历项目经验怎么写?--1000个已成功入职的软件测试工程师简历范文模板(含真实简历)渗透测试工程师可以写进简历的技能介绍部分测试工程师如何编写测试用例?作为一位软件测试工程师,应当需要哪些能力?谈谈全栈测试工程师软件测试工程师面试自我介绍部分模板
测试工程师掌握的技能高级测试工程师所具备的技能测试工程师个人技能测试工程师需要的技术测试工程师具备的技能测试开发工程师需要掌握的技能测试工程师需要什么技能系统测试工程师需要掌握的技能测试工程师需要具备哪些技能测试工程师的技能特长测试工程师的技能要求测试工程师基本技能测试工程师必备技能测试工程师要学什么技能测试工程师的素质和技能测试工程师业务能力和技能软件测试工程师具备的技能测试工程师所需技能长庆油田运输抢单平台下载日照轨迹示意图真三国无双电影版免费下载免费影视会员针织手工制作大全教程貂蝉是美女吗?起诉的流程毕升照片大全砖厂停了什么时候开工大学生忘记签到检讨书爱奇艺视频转换mp4格式