51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2148|回复: 2
打印 上一主题 下一主题

Jmeter基础(工具认识)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-3-28 16:50:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 MilgGtery 于 2019-3-28 16:51 编辑

一JMeter 介绍和安装

Jmeter是一款应用很广的开源性能测试工具,用来模拟虚拟用户完成性能测试工作,可以对Web应用进行测试同时提供了Web的录制功能,另外支持了多种请求,另外也支持Socket协议的测试。

安装:

安装配置JDK1.8,配置JDk运行环境

安装Jmeter4.0,配置Jmeter运行环境

Badboy2.2.5

JMeter基本原理是建立一个线程池,多线程运行取样器产生大量负载,在运行过程中通过断言来验证结果的正确性,通过临听器来记录测试结果。如果取样器中有参数化的需求,可以通过配置元件或者前置处理器来完成。如果有关联需求,可以通过后置处理器来完成。如果我们想要设置运行场景,比如模拟多少用户,运行多长时间,就设置线程组。如果我们想要模拟并发场景,可以利用定时器来设置; 如果我们想要控制业务的执行逻辑,比如登录只运行一次,我们可以用控制器来完成。

二、Jmeter初步认识

JMeter工具和其他性能工具在原理上完全一致,工具包含四个部分:

1)负载发生器(发送请求):用于产生负载,通常以多线程或是多进程的方式模拟用户行为。(取样器)

2)用户运行器(请求规则):通常是一个脚本运行引擎 ,用户运行器附加在线程或进程上,根据脚本要求模拟指定的用户行为。(用户组)

3)资源生成器(资源数据):用于生成测试过程中服务器、负载机的资源数据。

4)报表生成器(数据报表):根据测试中获得的数据生成报表,提供可视化的数据显示方式。

2.1主要结构介绍

取样器

取样器Sampler(发送请求):性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元,模拟用户的操作,向服务器发送的请求,提供的23个取样器原件支持绝大多数的请求

断言

验证结果是否正确,相当与loadrunner的检查点,用来验证返回结果是否正确,断言原件有13个

监听器

监听器Listener用来对测试结果数据进行处理和可视化展示的一系列元件。对测试结果的收集,有两个作用,一个是对结果的监听,另外一个是展示结果,如在调试等过程

前置处理器

前置处理器Pre Processors用于在实际的请求发出之前对即将发出的请求进行特殊处理。例如,HTTP URL重写修复符 ,可以实现URL重写,当URL中含有sessionID一类的session信息时,可以通过该处理器填充发出请求的实际的sessionID。

处理在请求之前的一些设置,比如连接数据库时的配置,在前置处理器完成

配置原件

两个作用,比如在参数化中,可能需要很多的测试数据,使用配置原件从文件中读取测试数据或者提供的函数生成动态数据,另外配置元件还能记录服务器的的返回数据,比如Http Catch Manager自动记录服务器返回的Catch数据,为取样器提供预备数据,提供给取样器下次请求使用

后置处理器

后置处理器放在取样器之后,对响应数据处理的原件,比如说关联就是通过该原件处理的

控制器

也叫逻辑控制器,控制执行的次数,执行的逻辑,多个控制器的组合可以完成大多数的业务需求

逻辑控制器Logic controller:有两类

(1)用于控制Sampler节点发送请求的逻辑顺序,常用:如果(If)控制器、switch Controller、Runtime Controller、循环控制器等

(2)用来组织可控制Sampler节点的,如事务控制器Transaction Controller、吞吐量控制器



定时器

定时器比如设置集合点等信息,不仅仅这一个功能,定时器种类很多,可以满足各种时间的需求

线程组

比如设置并发的虚拟用户数,还可以设置运行时长以及定时运行。

Test Fregment

         两个作用:一个是用来备份原件

         另外一作用就是TestFregment下的元件可以被逻辑控制器调用,相当于是开发中把某一业务封装在某一个模块里,然后在其他的位置调用。

工作台

         工作台

         可以用来用来设置代理服务器,录制脚本

         设置服务器监控(不建议,会对jemeter造成压力)

         脚本备份和显示jmeter信息。

2.2学习环境搭建

1、安装tomcat,网上找资料

2、安装数据库

3、新建对应名称的数据库

4、将下载的包解压放到tomcat的webapps目录下

5、启动tomcat并访问,按照操作安装

遇到问题:

1、  安装时需要在数据库中新建一个数据库jforum;

2、  访问地址一定要和文件夹的路径一致

3、  安装配置完成后会出现找不到发帖按钮,解决方式将在“jforum\templates\default\images”路径下,有一个文件夹,名字是“en_US”,将这个文件夹复制粘贴一份,将其命名为“zh_CN”,一定要注意文件夹名字必须写正确

2.3、使用Bodboy调试录制脚本并调试

第一步:点击登录路进入到登录页面,并登录

第二步:选择一个板块进入

第三部:单击发帖按钮,并发帖,发帖成功停止录制,并导出jmeter文件

录制过程参考《全栈性能测试参考宝典》

1、乱码解决

替换jar包里的文件

2、请求后无法将提交请求的list转换为字符串格式

使用fiddler抓包,重新编辑请求参数

3、关联时关联无效

重定向的问题,修改自动重定向或者跟踪冲定向调试

4、使用txt文件做为参数数据源时,读入数据异常

使用txt文件作为参数化的数据源时,文件的开头会有不可见的编码,建议使用notepad++编辑文档后重新保存

自动重定向只能重定向get和head请求,但是Jmeter不记录重定向过程,无法进行关联

跟随重定向是可以记录所有的数据,可以重定向

https请求安全,但是效率相对http低一些

Use concurrent pool 并发检索资源,设置并发大小

2.4 基础入门操作

添加测试计划

测试计划的理解相对简单些,相当于一项目建一个测试计划,所有的控件都放到测试计划中。

在测试计划中科设置选项:

测试计划上可以添加用户定义的变量。一般添加一些系统常用的配置。如果测试过程中想切换环境,切换配置,一般不建议在测试计划上添加变量,因为不方便启用和禁用,一般是直接添加用户自定义变量组件独立运行每个线程组:当一个测试计划中存在多个测试计划时是多个线程组同时运行的,当勾选了该选项就会一个线程组执行之后再执行另一个线程组

run teardown thread groups after shutdownof main thread:

如果没有勾选该选项,正常情况下,如果线程组执行失败,组件中包含teardown线程组,就不会执行了,而如果选择该组件还会继续执行该组件。有关teardown后续说明。

如果选中了此选项,监听组件如“查看结果树”配置了保存到一个文件中,那么jmeter会将每次的请求结果服务器返回信息都保存到文件中,比较影响性能,不建议勾选



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-9 03:54 , Processed in 0.065604 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表