此篇为博主原创内容,若转载请写明出处,谢谢!

前言

在搭建之初,我们要思考的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 性能测试环境搭建——理论篇的更多相关文章

  1. Appium+python自动化16-appium1.6在mac上环境搭建启动ios模拟器上Safari浏览器

    前言 在mac上搭建appium踩了不少坑,先是版本低了,启动后无限重启模拟器.后来全部升级最新版本,就稳稳的了. 环境准备: 1.OS版本号10.12 2.xcode版本号8.3.2 3.appiu ...

  2. appium1.6在mac上环境搭建启动ios模拟器上Safari浏览器 转自:上海-悠悠

    前言 在mac上搭建appium踩了不少坑,先是版本低了,启动后无限重启模拟器.后来全部升级最新版本,就稳稳的了. 环境准备: 1.OS版本号10.12 2.xcode版本号8.3.2 3.appiu ...

  3. 手把手制作一个简单的IDEA插件(环境搭建Demo篇)

    新建IDEA插件File --> new --> Project--> Intellij PlatForm Plugin-->Next-->填好项目名OK 编写插件新建工 ...

  4. LNMP环境搭建——MySQL篇

    The world's most popular open source database 1.Install MySQL root@kallen:~# apt-get install mysql-s ...

  5. Mac Appium环境搭建

    安装brew ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)" 安装java brew install ...

  6. MAC OpenGL 环境搭建

    MAC OpenGL 环境搭建 基础库介绍 先要安装两个库一个是GLEW(OpenGL Extension Wrangler Library),另外一个是GLFW(Graphics Library F ...

  7. Jmeter学习一:Jmeter性能测试环境搭建(Windows下)

    最近刚开始接触Jmeter性能测试,现总结环境搭建如下: 一.windows安装JDK步骤与环境变量配置: 1.先将下载的JDK安装到其默认目录:C:\Program Files\Java\jdk1. ...

  8. ReactNative环境搭建扩展篇——安装后报错解决方案

    之前一篇写了<逻辑性最强的React Native环境搭建与调试>说了RN的安装,今天在这里做一个复盘,让我们能够更直观更深入的了解React Native(以下简称RN),这一篇重点来说 ...

  9. MAC自动化环境搭建

    UI自动化环境搭建 第一阶段:配置appium环境硬件配置mac系统电脑 java环境sunjiedeMacBook-Air:~ vicent$ java -versionjava version & ...

随机推荐

  1. Yii2框架---常用代码

    一.Php控制器跳转 return $this->redirect('/site/index/index');   二.回调自身控制器 self::actionXxxx();   三.获取当前用 ...

  2. get和post提交数据的区别

    get是客户端向服务器索取数据的请求,设定的初衷是,客户端(浏览器)给服务器发送请求,然后服务器再返回给客户端其要求的数据. 那么为什么说get也能提交数据呢? 我们仔细理解第一句话“客户端(浏览器) ...

  3. highcharts的多级下钻以及图形形态转换

    <script src="https://img.hcharts.cn/jquery/jquery-1.8.3.min.js"></script> < ...

  4. C++模板学习:函数模板、结构体模板、类模板

    C++模板:函数.结构体.类 模板实现 1.前言:(知道有模板这回事的童鞋请忽视) 普通函数.函数重载.模板函数 认识. //学过c的童鞋们一定都写过函数sum吧,当时是这样写的: int sum(i ...

  5. ACE框架 同步原语设计

    ACE框架常用的同步机制设计成统一的原语接口.同步原语使用系统平台(操作系统,多线程库)提供的同步原语,并为系统平台不提供的同步原语提供模拟实现.ACE框架使用了外观模式和适配器分两层,将同步原语统一 ...

  6. 开源框架是如何通过JMX来做监控的(一) - JMX简介和Standard MBean

    相关文章目录: 开源框架是如何通过JMX来做监控的(一) - JMX简介和Standard MBean 开源框架是如何通过JMX来做监控的(二) - Druid连接池的监控 相信很多做Java开发的同 ...

  7. javaWeb学习总结(1)- JavaWeb开发入门

    一.基本概念 1.1.WEB开发的相关知识 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资源分为: 静态web资源( ...

  8. 关于jQuery表单选择中prop和attr的区别。

    今天用jQuery学习表单这一章节的内容,再次遇到表单全选时,不能进行第二次全选的情况.反复查看测试仍然找不到是什么原因.后来在网上查到原来是jQuery1.6以后的版本用到的是prop.用attr的 ...

  9. Weka算法介绍

    RWeka (http://cran.r-project.org/web/packages/RWeka/index.html) : 1) 数据输入和输出 WOW():查看Weka函数的参数. Weka ...

  10. 如何运行容器?- 每天5分钟玩转 Docker 容器技术(22)

    上一章我们学习了如何构建 Docker 镜像,并通过镜像运行容器.本章将深入讨论容器:学习容器的各种操作,容器各种状态之间如何转换,以及实现容器的底层技术. 运行容器 docker run 是启动容器 ...