标签:工作 原理 验证 个性化 思路 version 流程 自动化 测试程序
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
性能测试是一项综合性的工作,致力于暴露性能问题,评估系统性能趋势。性能测试工作实质上是利用工具去模拟大量用户来验证系统能够承受的负载情况,找出潜在的性能问题,分析并解决。
具体的技能树如下:
性能测试几大难点:
(1) 需求分析
(2) 场景设计
(3) 性能诊断调优
(4) 环境搭建和模拟
性能测试判断是否通过:
性能测试主要交付件:
测试计划
测试脚本
测试程序
测试报告或阶段性性能报告
14.评审:对性能报告中的内容进行评审,确认问题、评估上线风险。
通过标准参考如下:
分类 |
用户量 |
指标 |
优先级 |
备注 |
事务处理类 |
300 (非高峰期) |
前端系统访问响应时间≤5秒 |
中 |
|
查询类 |
300 (非高峰期) |
前端系统访问响应时间≤2秒 后端CPU利用率<=50% 后端内存利用率<=50% |
高 |
|
1000 (高峰期) |
系统访问响应时间≤10秒 后端CPU利用率<=70% 后端内存利用率<=70% |
高 |
||
3000 (极限) |
系统未崩溃 请求未返回大量错误 |
低 |
||
统计类 |
简单统计类 |
系统响应时间≤10秒 |
中 |
手动启动业务全过程跟踪 |
复杂统计类 |
系统响应时间≤30秒 |
中 |
手动启动运行月报 |
5 性能测试趋势
性能测试将会在自动化的道路上越走越远,持续集成也将更好的集成性能测试部分。
http://jmeter.apache.org/,下载jmeter,如图:
jmeter界面能正常打开,表示安装成功,如图:
PS:Jmeter 是支持中文的, 启动Jmeter 后, 点击 Options -> Choose Language 来选择语言
计算机→属性→高级系统设置→高级→环境变量,如图:
3-1. 添加用户变量JAVA_HOME ,变量内容填写jdk的目录, 如 C:\Program Files\Java\jre1.8.0_131
3-2.添加系统变量CLASSPATH,变量值填写 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有点和分号:点表示当前路径,分号表示分隔符)
3-3.添加系统变量PATH,变量值填写%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;(注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码)
3-4. 检验是否配置成功 运行cmd 输入 java -version (java 和 -version 之间有空格)
若如图所示 显示版本信息 则说明安装和配置成功,如图:
• Jmeter的Home目录下包含bin、docs、extras、lib、printable_docs这5个文件夹。
• 我们需要重点知道的是bin、lib和docs目录。
• Bin目录下存放的是可执行的程序、配置文件和日志文件。
在windows下,找到bin文件下的jmeter.bat文件,双击就打开jmeter。
在linux下,找到bin文件下的jmeter.sh文件。
jmeter界面能正常打开,表示安装成功,如图:
PS:Jmeter 是支持中文的, 启动Jmeter 后, 点击 Options -> Choose Language 来选择语言
Jmeter是java写的,在lib下面包含ext、junit目录、jar包。
Jar包在脚本或者jmeter运行时所需要的jar包,比如使用JDBC测试数据库时,就需要对应的jdbc驱动的jar包放入lib目录。
Ext目录下存放的是jmeter运行时的各个组件的jar包,也可以存放自定义组件和插件的jar包。
取样器:进行脚本逻辑控制
线程组:场景设置
监视器:监控我们的脚本运行,取得性能指标
名称:可以给线程组设置一个个性化的命名
注释:可以对线程组添加备注以标记
在取样器错误后要执行的动作:就是在错误之后要如何执行,可选继续执行后续的、停止执行等。
线程数:就是需要设置多少线程执行测试。
Ramp-up Period (in Seconds):用于告知JMeter 要在多长时间内建立全部的线程。多长时间内需要把上面的线程数均匀启动完。 默认值是0。如果未指定ramp-up period ,也就是说ramp-up period 为零, JMeter 将立即建立所有线程。假设ramp-up period 设置成T 秒, 全部线程数设置成N个, JMeter 将每隔T/N秒建立一个线程。
循环次数:就是决定一个线程要跑多少次测试。
Delay Thread creation until needed:直到需要时延迟线程的创建
调度器:选中之后可以配置启动时间,立即或者预定的时间
3.2取样器:模拟用户操作
取样器用来模拟用户操作,向服务器(被测试系统)发出HTTP请求、WebService请求或Java请求。
取样器路径:【测试计划】->【线程组】->【Sample】
Jmeter的测试结果需要添加监听器来收集。监听器任务用于添加结果监听、展示结果。
路径:【测试计划】->【监听器】
【取样器】、【断言】、【监听器】组合在一起们可以完成发送请求、验证结果及记录结果。
断言是用来验证结果的正确性。
断言就是用一个预设的结果(值、表达式、时间长短等条件)与实际结果匹配。
断言路径:【测试计划】->【断言】
前置处理器用于环境或参数的准备工作,比如对数据库进行操作前,需要先建立连接。
路径:【测试计划】->【前置处理器】
配置元件用于模拟大量用户操作我们往往需要做参数化或者可以用来记录服务器的返回数据。
路径:【测试计划】->【配置元件】
后置处理器一般放在取样器之后,用来处理服务器的返回结果,比如一个web应用程序,我们登录后会返回一个SessionID,登陆后的业务操作过程中会作为验证条件,验证用户是否合法登录。Jmeter的关联通过后置处理器来完成。
路径:【测试计划】->【后置处理器】
【前置处理器】、【配置元件】、【后置处理器】都是为取样器提供数据支持的,取样器关注业务逻辑。
比如说用在登陆一次邮件,查看多封邮件。
路径:【测试计划】->【线程组】->【逻辑控制器】
定时器模拟同一时刻发送,集合的功能。
路径:【测试计划】->【线程组】->【定时器】
有2种方式的录制方式:
一、使用badboy进行录制
二、使用代理方式进行录制
4.1 脚本录制的流程与思路
打开百度,输入badboy,进入官网,下载对应的版本,网址如下:http://www.badboy.com.au/
如图:
下载完成后,进行安装,安装成功后,在程序中找到badboy,点击打开badboy,表示安装成功,如图:
Badboy功能区如下:
HTTP代理方式进行录制的原理:解析网络数据包,按Http协议包装成Http Request,Http Response等对象。
HTTP请求默认值(添加录制控制器)
HTTP代理服务器(设置端口、IP地址)
浏览器设置:
根据对应的协议类型选择合适的取样器(sampler),手动编写对应的请求,实现模拟数据发送的效果。
前提:了解协议、了解抓包工具、了解性能测试工具。
自动重定向:当重定向时,自动跳转时,只针对GET和Head请求,自动重定向可以自动跳转到最终目标页面,但是jmeter不记录重定向过程内容【在查看结果树中只能看到重定向后的响应内容】
跟随重定向:当重定向时,自动重定向可以自动跳转到最终目标页面,但是jmeter记录重定向过程内容【在查看结果树中既能看到重定向后的响应内容,也能看到重定向前的响应内容】
性能测试学习之路 (一)认识jmeter(性能测试流程 && 性能测试通过标准)
标签:工作 原理 验证 个性化 思路 version 流程 自动化 测试程序
原文地址:https://www.cnblogs.com/wendyw/p/11626558.html