jmeter基础(一)

1.JMeter的特性
Jmeter基本原理是建立一个线程池,多线程运行取样器产生大量负载,在运行过程中通过断言来验证
结果的正确性,可以通过监听来记录测试结果;
JMeter选择了以线程方式来运行,通过线程组来驱动多个线程,运行测试脚本对
被测服务器发生负载,每个负载机上都可以运行多个线程组,运行场景不仅可以在GUI(图形用户界面)方
式中完成,还可以使用命令行,而且命令行运行的方式对于负载机的资源消耗会更小
JMeter可以作为Web服务器与浏览器之间的代理网关,以便捕获浏览器的请求和Web服务器的响应,
这样就很容易地生成性能测试脚本, 有了性能测试脚本,JMeter就可以通过线程组来模拟真实用户对
Web服务器的访问压力
2.JMeter主要特点
(1)支持对多种服务类型进行测试,包括:web-http,https;SOAP;Database via JDBC;LDAP;JMS; Mail-POP3(S) and IMAP(S)
(2)支持通过录制/回访方式获取测试脚本
(3)具备高可移植性,是100%纯java程序
(4)采用多线程框架,允许通过多个线程并发取样及通过独立的线程组对不同的功能同时取样
(5)静心设计的GUI支持高速用户操作和精确计时
(6)支持缓存和离线的方式分析/回放测试结果
(7)具备高扩展性,包括:
插拔式的取样器支持无限制扩充测试能力
提供各种负载统计表和可插拔的计时器
数据分析和可视化提供了很好的扩展性及个性化支持
通过预置函数为测试提供动态输入数据,以及通过预置函数对测试数据进行操作
支持用脚本构造采样器
3.JMeter一些用法
执行顺序: 配置元件 -> 前置处理器 -> 定时器 -> 取样器(sampler) -> 后置处理器 -> 断言 -> 监听器;
每次反复清除Cookies:跑性能时要勾上,比如说登录了,没有退出;
断言: 一般使用 bean shell断言 或者 响应断言;
如果取样器中有参数化需求,可以通过配置元件或者前置处理器来完成;
如果取样器中有关联需求,可以通过后置处理器来完成;
如果要模拟负载场景,比如模拟多少用户,运动多长时间,可以通过线程组完成;
如果要模拟并发场景,可以通过定时器来完成;
如果要控制业务的执行逻辑,比如登录只运行一次,可以通过控制器来完成;
只有有sampler的时候,定时器,断言,前置/后置处理器才会运行,逻辑控制器和Samplers按他们在树里的排列顺序执行
4.JMeter组件的作用域
元件的作用域是靠测试计划的的树型结构中元件的父子关系来确定的
①.取样器(sampler)元件不和其它元件相互作用,因此不存在作用域的问题
②.逻辑控制器(Logic Controller)元件只对其子节点中的取样器 和 逻辑控制器作用
③.除取样器 和逻辑控制器 元件外,其他6类元件,如果是某个sampler的子节点,则该元件公对其父子节点起作用
④.除取样器和逻辑控制器元件外的其他6类元件,如果其父节点不是sampler ,则其作用域是该元件父节点下的其他所有后代节点(包括子节点,子节点的子节点等)

前置处理器、后置处理器和断言等元件公能对 取样器作用,因此,如果在它们的作用域内没有任何取样器,则不会被执行
如果在同一作用域范围内有多个同一类型的元件,则这些元件按照它们在测试计划中的上下顺序一次执行
5.打开JMeter录制,报端口已占用错误
首先检查浏览器配置代理的端口和JMeter录制脚本的端口是否一致
在这里插入图片描述在这里插入图片描述
如果配置端口一致,接下来检查是否开启fiddler、charles等抓包工具,并且端口号和浏览器,Jmeter的端口重复
在这里插入图片描述
6.小知识
①突然发现Google不能用了。是因为fiddler 会自动设置IE代理,而Google使用的是IE内核,可以再设置里关闭,如果关闭后还是不行,就把证书添加进去,但是得重启浏览器!!
②如果url没有转义过来,可以用urldecoder在线转换一下,方便查看
③jmeter 快捷工具:ctrl + t 启用/禁用; ctrl + e 清空运行结果; ctrl + r 运行
④运行采样器一直超时,在advanced里把Timeouts 里的Connect设置大一点

猜你喜欢

转载自blog.csdn.net/danWuDe/article/details/84875268