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

前言

在搭建之初,我们要思考的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. 最长公共子序列poj1458

    #include<map> #include<set> #include<list> #include<cmath> #include<queue ...

  2. Mac电脑使用Android Studio进行真机调试

    第一步: 为mac电脑配置 adb 命令的环境变量,分为2小步 1.找到 Android Studio 为你安装的 SDK : 打开电脑中 Android studio 的工具的软件,在启动 Andr ...

  3. JS实现鼠标悬浮,显示内容

    其实就是增加title属性

  4. JavaScript常用的方法和函数(setAttribute和getAttribute )

    仅记录学习的新知识和示例,无干货. 1.setAttribute和getAttribute          (Attribute:属性) setAttribute:为元素添加指定的属性,并为其赋值: ...

  5. arm处理器

    arm处理器 arm处理器相关 1.体系架构定义了指令集(ISA)和基于这一体系结构下处理器的编程模型. arm卖的是架构或者已经设计好的公版ip核 卖给苹果高通的是架构,需要苹果高通通过架构设计自己 ...

  6. 我对Stub和Mock的理解

    介绍 使用测试驱动开发大半年了,我还是对Stub和Mock的认识比较模糊,没有进行系统整理. 今天查阅了相关资料,觉得写得很不错,所以我试图在博文中对资料进行整理一下,再加上一些自己的观点. 本文是目 ...

  7. angular.js的表格指令

    html div.col-sm-12 table.table.table-bordered.table-condensed.table-hover.table-striped.dataTable.no ...

  8. Java Final and Immutable

    1. Final keyword Once a variable X is defined final, you can't change the reference of X to another ...

  9. SharePoint 无法删除搜索服务应用程序

    在SharePoint的使用中,经常会遇到某些服务创建失败,某些服务删除不成功的情况.这里,我们就遇到了搜索服务创建失败,然后删除也不成功,使用管理中心的UI无法删除,PowerShell命令也无法删 ...

  10. 全局精确流量调度新思路-HttpDNS服务详解

    但凡使用域名来给用户提供服务的互联网企业,都或多或少地无法避免在有中国特色的互联网环境中遭遇到各种域名被缓存.用户跨网访问缓慢等问题.那么对于腾讯这样的域名数量在10万级别的互联网公司来讲,域名解析异 ...