性能测试基础

本质:基于 协议 模拟用户发请求,对服务器形成一定的负载,来测试服务器的性能指标是否满足要求,与界面无关

   * 时间

   * 空间

分类:

  性能(狭义):特定条件下,验证  系统是否有宣称具有的能力

  负载:不断 加压 直到达到一种 极限 状态

  压力(强度):饱和 状态下,处理能力和表现

  并发:多用户同时发送请求,注意是否存在 死锁(同时需要某种资源)

  配置:软件件环境的调整,找系统最优资源分配

  可靠:一定业务压力下,持续运行 一段时间(一般72h),看系统是否稳定

测试指标:

  并发用户数:同一时间向服务器发送请求的用户数量,与并发请求数不同

  响应时间(随着并发用户数的增加而增加,等待时间+处理时间+网络传输时间,不包括前端页面渲染时间)

  tps(单位事务数,随着并发用户数的增加而增大,并发用户数达到一定数量后不再增加)--- hps(每秒请求数)、吞吐量(处理能力)

  资源利用率(CPU利用率--不超过80%,队列长度  、  Mem利用率--80%以下,页交换频率  、 带宽利用率 )--如果资源利用率太小,造成资源浪费

流程:需求分析--测试计划--测试方案--用例设计--测试执行--定位分析问题

  需求分析:

    测试对象:常用、核心

    测试指标:吞吐量、tps、响应时间、用户数

         2/8原则:80%的用户请求,集中在20%的热点数据上,或时间段内

    测试场景:单一场景、混合场景(业用户使用场景、系统使用场景)

  测试计划:

    测试目标

    测试人员组织

    压测进度安排

    压力机:配置、要求、数量

    风险

  测试方案:

    测试工具:LoadRunner、Jmeter

    测试环境:数据库。服务器、架构设计、尽量和生产环境一致

    测试策略:单一场景、混合场景

    监控工具:Linux(nmon、rpc、jvisuaIVm、Sportlight)、Windows(Spotlight、perfmon.exe)

  用例设计: 

    测试脚本:根据操作步骤生成脚本

    场景设计:场景运行步骤(初始化、开始vuser、持续运行、停止vuser)

  测试执行:

    脚本编写

    场景监控设计(业务场景)

    运行场景

    监控场景

    测试报告

  定位分析问题:

    后端:代码、软件(数据库、应用服务器、apache等)、硬件

    前端

    网络

  流程图:

  

LoadRunner安装:(VMware虚拟机)

    OS:xp/win7/windows2003/windows2008、专业版和旗舰版、IE(8/9)

    安装:直接解压(setup.exe--完整安装程序)、虚拟光驱、可以单独安装压力机(load generator)

    破解:

    问题解决方案:杀毒软件是否关闭、防火墙是否关闭

LoadRunner三大组件:

    VuGen:生成脚本

      脚本录制流程:create scripts -- new script -- 选择协议(单协议/多协议/最近使用过的协议) --  start record(录制) --  url地址、工作目录(安装目录)、Action、Record the application startup --  自动打开网站 -- 登录(jojo bean)并退出 -- stop(停止录制脚本),生成相应的脚本 --  切到script可以查看脚本

      网站例子:samples -- start webServer(启动网站服务器) --  webTours网站

      协议选择:询问开发、根据项目经验、自带协议探测工具

      录制前准备:被测系统的类型(浏览器、非浏览器)、采用的浏览器(如果是IE 64位的,一定要选择program files(x86)下面的ie浏览器)、被测地址、默认设置

      遇到问题:IE不能启动(是否默认浏览器、是否是9以下、更换火狐试试、检查杀毒软件是否关闭、手动编写)

      脚本查看及函数介绍:脚本查看模式(tree view:可以查看每个url的页面,script view:可以查看录制的脚本)

             注意:每行脚本都是一个函数调用

                函数中的参数记录了客户端发送给服务器(请求request)的数据

                web_url:请求一个页面

                web_link:单击文本链接请求打开一个网页

                web_image:单击图片链接请求打开一个网页

                web_submit_form:代表在请求打开一个网页时需要将一定的数据上传到服务器

      脚本组成介绍-都是action:

          vuser_nit():用户初始化 (只存在一个,仅运行一次)

          Action:用户操作(可创建多个action,action可以进行多次迭代)

          vuser_end:用户结束(只存在一个,仅运行一次)

      运行脚本(run或F5)和查看结果:

          replay log:运行时日志(函数执行结果,脚本运行次数) ---  不检查业务是否成功(在view-test results中查看结果)

          recording log:录制时日志(传输的数据)

          correlation results :关联

          generation log:普通日志(请求和响应数据)

      录制级别:options--recording--HTTP/HTML Level (HTML-based -- 把所有请求封装到一个步骤中 、 URL-based  --  每一个请求封装为一个步骤)-- advance(一种以页面的形式--依赖上下文,一种以接口的形式--不依赖上下文)

    Controller:运行脚本

        vuGen.tools--create controller scene... --- 选择Menual scene... --- number vuser(虚拟用户数) --- generator(压力机):localhost --- group name --- 结果路径

        vugen.action与controller对应策略:vuser_init --------  Initalize    action ------- Start Vuser 、  Duration    vuser_end -------- Stop Vuser

    Analysis:分析

        Controller.results --- analysis results

作用:

  1、只要订票的actoin的时间?(将登陆放在init块中,将推出放在end中)

  2、将订票的过程分开?

LR基本知识学习的更多相关文章

  1. 网络知识学习2---(IP地址、子网掩码)(学习还不深入,待完善)

    紧接着:网络知识学习1 1.IP地址    IP包头的结构如图 A.B.C网络类别的IP地址范围(图表) A.B.C不同的分配网络数和主机的方式(A是前8个IP地址代表网络,后24个代表主机:B是16 ...

  2. HTML5标签汇总及知识学习线路总结

    HTML5标签汇总,以及知识学习线路总结.

  3. 安全测试3_Web后端知识学习

    其实中间还应该学习下web服务和数据库的基础,对于web服务大家可以回家玩下tomcat或者wamp等东西,数据库的话大家掌握基本的增删该查就好了,另外最好掌握下数据库的内置函数,如:concat() ...

  4. GCC基础知识学习

    GCC基础知识学习 一.GCC编译选项解析 常用编译选项 命令格式:gcc [选项] [文件名] -E:仅执行编译预处理: -S:将C代码转换为汇编代码: -c:仅执行编译操作,不进行连接操作: -o ...

  5. 毕业设计预习:VHDL入门知识学习(一) VHDL程序基本结构

    VHDL入门知识学习(一) VHDL程序基本结构 简介 VHDL程序基本结构 简介 概念: HDL-Hardware Description Language-硬件描述语言-描述硬件电路的功能.信号连 ...

  6. 「日常训练&知识学习」单调栈

    这几天的知识学习比较多,因为时间不够了.加油吧,为了梦想. 这里写几条简单的单调栈作为题解记录,因为单调栈的用法很简单,可是想到并转化成用这个需要一些题目的积淀. 相关博客参见:https://blo ...

  7. (转)Linux基础知识学习

    Linux基础知识学习 原文:http://blog.csdn.net/ye_wei_yang/article/details/52777499 一.Linux的磁盘分区及目录 Linux的配置是通过 ...

  8. Objective-c基础知识学习笔记

    Objective-c基础知识学习笔记(一) 一直有记录笔记的习惯.但非常久没分享一些东西了,正好上半年開始学习IOS了,如今有空写点.因开发须要,公司特意为我们配置了几台新MAC.还让我们自学了2周 ...

  9. MySQL索引知识学习笔记

    目录 一.索引的概念 二.索引分类 三.索引用法 四 .索引架构简介 五.索引适用的情况 六.索引不适用的情况 继我的上篇博客:Oracle索引知识学习笔记,再记录一篇MySQL的索引知识学习笔记,本 ...

随机推荐

  1. MongoDB解压报错gzip: stdin: not in gzip format的解决方法

    MongoDB解压报错gzip: stdin: not in gzip format的解决方法 在安装MongoDB时出现如下报错: [root@vm172--- mongodb]# tar -zxv ...

  2. 【剑指Offer】只出现一次的字符

    题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g".当从该字符流中读出 ...

  3. Opencv + opencv_contrib + Tesseract 之Qt开发环境搭建

    1.软件包准备 opencv源码包地址:                官网  github opencv_contrib源码包地址:   github Tesseract源码包地址:        ...

  4. Delphi 7启动后提示Unable to rename delphi32.dro的解决办法

    在Win10 64 上安装完Delphi 7,每次打开报错: Unable to rename 'C:\Program Files (x86)\Borland\Delphi7\Bin\delphi32 ...

  5. Python课程第一天作业

    一.第一题:简述编译型与解释型语言的区别,且分别列出你知道的哪些语言属于编译型,哪些属于解释型? 计算机是不能理解高级语言的,更不能直接执行高级语言,它只能直接理解机器语言,所以使用任何高级语言编写的 ...

  6. 使用Git将本地文件提交到远程仓库

    一 操作准备条件: git远程仓库已经建好了,本地文件已经存在了,现在要将本地代码推到git远程仓库保存. 解决办法如下: 1.(先进入项目文件夹)通过命令 git init 把这个目录变成git可以 ...

  7. 封装poi导出篇

    前言 先写的导入,以为导出会很简单,没想到导出的东西也不少,基于常用的几种样式和校验写了一个简单的导出,包括时间,数字,文字长度,下拉框,提示框校验,基础样式包括字体,字体颜色,背景颜色等功能,可以使 ...

  8. leetCode83. 删除排序链表中的重复元素

    给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次. 示例 1: 输入: 1->1->2 输出: 1->2 示例 2: 输入: 1->1->2->3-&g ...

  9. 7.3.5 Tomcat堆溢出分析(1)

    实战Java虚拟机:JVM故障诊断与性能优化>第7章分析Java堆,本章主要介绍了Java堆的分析方法.首先,介绍了几种常见的Java内存溢出现象及解决思路.其次,探讨了java.lang.St ...

  10. Anatomy of a Database System学习笔记 - 概论、并发控制

    <Anatomy of a Database System>这篇发表于87年.一共48页的论文据说是DBA入门必看,但是找了全网没有找到中文翻译.这篇文章对关系型数据库确实有提纲挈领的作用 ...