Mac 性能测试环境搭建——理论篇
此篇为博主原创内容,若转载请写明出处,谢谢!
前言
在搭建之初,我们要思考的2个点:
1.性能怎么测试?
2.性能的测试环境如何搭建(该如何去做)?
1.什么是性能?
个人理解为:合理的架构、低耦合、高内聚、吞吐好,计算强,一系列的组合
2.什么是性能测试?
通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试
3.性能测试的目的:
性能测试的目的,简单说其实就是为了获取待测系统的响应时间、吞吐量、稳定性、容量等信息。而发现一些具体的性能相关的缺陷(如内存溢出、并发处理等问题),我认为只是一种附加结果。从更高的层次来说,性能测试最想发现的,是瓶颈。如何能得到所需要的信息,就需要从多方面进行测试。
2.性能怎么测试?
在实际工作,一般的应用系统会从这么几个方面进行性能测试:
1.基准测试
Benchmark或者Baseline测试。一般为单用户测试,或者是零数据量环境下的测试。目的在于建立一个可度量的参考标准,为其他测试场景或者调优过程提供对比参考。也可认为是最基础的性能测试,如果基准测试的结果都不能达到预期要求,那么后续场景也就没必要测试了。
2.日常压力测试
在基准测试通过后,应该先进行较小压力下的测试,首先对系统在日常压力下的表现进行测试。此压力需要根据系统使用相关数据得出,如系统平均每天访问量、平均在线人数、每日完成事务数等。通过此测试,发现一些较表面的性能问题并进行处理。
3.峰值压力测试
在日常压力测试通过后,需要进行更大压力的测试。此处压力同样需要相关数据的支持,一般为未来几年后的预期压力。可根据历史日均压力、日最高压力等信息,估算出未来几年的日均以及日最高压力。再通过一些通用估算方法、如二八原则(80%的工作在20%时间内完成,相当于2小时完成一天8小时的工作量),将日压力转换成峰值压力。
峰值压力为可预期到的最大负载压力,通过了此测试,则认为系统有能力满足未来增长的压力。
4.容量测试
验证了系统是否可满足预期的压力后,还需要知道系统能够承受的最大压力,也就是容量。一般通过“拐点法”进行测试,逐步增大系统的压力,直到性能指标不可接受或者出现了明显的拐点
5.稳定性测试
验证系统是否可长期稳定的运行,是否存在一些短时间内可能无法发现的缺陷(如内存溢出、数据库连接不释放等)。为了缩短测试工期,一般可将预期一天的压力集中在2小时内完成(二八原则),这样持续加压10小时,便相当于系统运行5天。注意监控各种性能指标是否平稳,有无下降。
性能测试要统一考虑这么几个因素:Thoughput吞吐量,Latency响应时间,资源利用(CPU/MEM/IO/Bandwidth…),成功率,系统稳定性
二、性能测试环境搭建:
1.搭建被测试对象服务器
2.搭建测试所需要用到的数据库【Oracle or mySQL】
3.本地进行Jmeter的下载以及环境配置
因性能需求,个人所需的被测试对象服务器采用虚拟机:1G内存,1核CPU,软体为:Centos 7
本人使用电脑为Mac,所以,上述工作为此带来大量的工作量,新手建议在windows下列进行上述环境搭建。
搭建步骤:
1.Mac采用VMware Fusion 搭建虚拟机。
2.搭建完成后,在虚拟机进行环境配置(详细步骤不做阐述,可百度):
1.卸载linux自带JDK
2.下载SUN 公司的JDK进行安装
3.安装成功后进行环境变量配置
4.下载tomcat
5.进行tomcat环境变量配置包括端口名称的更改,有些端口会占用
6.可对tomcat进行设置为开机启动(自选)
7.tomcat启动后,打开firefox进行登录check,查看localhost:xxxx/是否成功开启,若是开启失败,请自行百度,成功说明没有问题
8.在虚拟机启动后,关闭防火墙(不同公司的linux命令不同,请自行百度)
9.设置桥接(wifi连接与网线连接有区别,所以要进行设置),原因:其他机器需要访问你虚拟机所以要开启桥接,方便日后测试
设置完毕后,在本机访问虚拟机下的tomcat服务器,在此,要使用虚拟机IP+端口进行访问,若是无法访问,需要看桥接是否正常开启
二:根据公司性能需求,搭建所需开发框架,之后进行打包操作,本人使用的是IntelliJ IDEA IDE编辑器
在使用的过程中,需要使用到maven进行打包
打包成功后,把war包加载入虚拟机中,war包放入tomcat下webapps下,并开启tomcat服务,war会自动解析,
查看是否已上传成功,可根据ip+端口+项目目录名称/index.jsp进行访问。
其中坑多的点在于:
1.tomcat
2.虚拟机网络设置、防火墙无法永久性关闭
3.tomcat若是不觉得麻烦,不要对其做过多修改,避免出现更多奇奇怪怪问题,比如更改server。xml等等文件操作,需谨慎
4.项目打包时,需要本地提前做数据库以及其他的相关操作,并验证是否可以通过编译不会出错
5.如何将本机的war包放入虚拟机中?
我的操作是将本地搭建一个ftp,然后虚拟机进行访问
windows下列可以进行一个共享文件夹进行访问
Mac 性能测试环境搭建——理论篇的更多相关文章
- Appium+python自动化16-appium1.6在mac上环境搭建启动ios模拟器上Safari浏览器
前言 在mac上搭建appium踩了不少坑,先是版本低了,启动后无限重启模拟器.后来全部升级最新版本,就稳稳的了. 环境准备: 1.OS版本号10.12 2.xcode版本号8.3.2 3.appiu ...
- appium1.6在mac上环境搭建启动ios模拟器上Safari浏览器 转自:上海-悠悠
前言 在mac上搭建appium踩了不少坑,先是版本低了,启动后无限重启模拟器.后来全部升级最新版本,就稳稳的了. 环境准备: 1.OS版本号10.12 2.xcode版本号8.3.2 3.appiu ...
- 手把手制作一个简单的IDEA插件(环境搭建Demo篇)
新建IDEA插件File --> new --> Project--> Intellij PlatForm Plugin-->Next-->填好项目名OK 编写插件新建工 ...
- LNMP环境搭建——MySQL篇
The world's most popular open source database 1.Install MySQL root@kallen:~# apt-get install mysql-s ...
- Mac Appium环境搭建
安装brew ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)" 安装java brew install ...
- MAC OpenGL 环境搭建
MAC OpenGL 环境搭建 基础库介绍 先要安装两个库一个是GLEW(OpenGL Extension Wrangler Library),另外一个是GLFW(Graphics Library F ...
- Jmeter学习一:Jmeter性能测试环境搭建(Windows下)
最近刚开始接触Jmeter性能测试,现总结环境搭建如下: 一.windows安装JDK步骤与环境变量配置: 1.先将下载的JDK安装到其默认目录:C:\Program Files\Java\jdk1. ...
- ReactNative环境搭建扩展篇——安装后报错解决方案
之前一篇写了<逻辑性最强的React Native环境搭建与调试>说了RN的安装,今天在这里做一个复盘,让我们能够更直观更深入的了解React Native(以下简称RN),这一篇重点来说 ...
- MAC自动化环境搭建
UI自动化环境搭建 第一阶段:配置appium环境硬件配置mac系统电脑 java环境sunjiedeMacBook-Air:~ vicent$ java -versionjava version & ...
随机推荐
- 阿里云CentOS7.2服务器的安装
第一步:下载服务器系统ISO安装文件 我使用的是阿里云的镜像:因为阿里云的服务在国内相对比较成熟 服务器镜像下载如下:http://mirrors.aliyun.com/centos/7/isos/x ...
- 优化单页面开发环境:webpack与react的运行时打包与热更新
前面两篇文章介绍初步搭建单页面应用的开发环境: 第一篇:使用webpack.babel.react.antdesign配置单页面应用开发环境 第二篇:使用react-router实现单页面应用路由 这 ...
- 微信小程序(组件demo)以及预览方法:(小程序交流群:604788754)
1. 获取微信小程序的 AppID 登录 https://mp.weixin.qq.com ,就可以在网站的"设置"-"开发者设置"中,查看到微信小程序的 Ap ...
- 学习sql基础注入的方法
作为一个初学者的我,经学习发现基础真的十分重要, 这个随笔是写给我自己的希望我能坚持住 当然,我也希望对其他人有点帮助 在sql注入的过程中,我越发感觉那些基础函数的重要性 其实我感觉sql注入其实就 ...
- Android 6.0的权限问题
Android 6.0的权限获取不同于别的版本,具体的实例如下: if (ContextCompat.checkSelfPermission(this, Manifest.permission.REA ...
- 安卓模拟器tools修改
defaults write com.apple.finder AppleShowAllFiles -bool true 这步是显示隐藏文件夹, 然后打开finder,在应用程序上右键,选择在上层文件 ...
- java泛型探索——介绍篇
1. 泛型出现前后代码对比 先来看看泛型出现前,代码是这么写的: List words = new ArrayList(); words.add("Hello "); words. ...
- Java Map List 的使用
项目中有一个需求是将年月分两行显示: java后台代码 创建一个demo,使用Map List 拆分年月: package demo; import java.util.ArrayList;impor ...
- hdu1255 覆盖的面积 线段树+里离散化求矩形面积的交
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1255 求矩形面积的交的线段树题目,刚做了求并的题目,再做这个刚觉良好啊,只要再加一个表示覆盖次数大于1 ...
- 转:request.getSession(true)和request.getSession(false)的区别
1.转自:http://wenda.so.com/q/1366414933061950?src=150 概括: request.getSession(true):若存在会话则返回该会话,否则新建一个会 ...