zoukankan      html  css  js  c++  java
  • 性能测试概念及基本流程

    LoadRunner的初级部分--三大组件的简单运行

      a. 脚本生成器:调代码、脚本的地方

      b. 控制台:好比指挥部

      c. 结果分析器:比如,每隔3秒钟出一个结果,分析海量的结果,还可以继续分析。

    2)LoadRunner的高级部分--三大组件逐个深入掌握。

    3、性能测试的高级部分:性能测试过程中,遇到问题(瓶颈),如何查找、定性,进行性能调优。

    LR11可以去网上下载破解版,破解2WLicence用户

    基本测试流程:

     1)创建/编辑脚本

     2)运行压力测试

     3)分析测试结果

     压力激增--瞬时压力:并发压力(性能测试)

     系统瘫痪--宕机 (down机了)

     3个小时内,网站的浏览次数达到2000万次

     他们提供的100次/小时   他们:奥组委

      甲方:奥组委   乙方:开发方   第三方:测试团队

     浏览量第一小时 800万次  8000000 / 3600 = 2222次/秒

     每秒钟从网上提交的门票申请超过20万张

     浏览量:PV值,页面的访问量或点击量

    三、性能测试的概念:

    1、性能测试:模拟真实的生产环境,以各种不同的压力(模拟大量用户)去测试被测系统、去"攻击"测试系统。同时记录下被测系统中 各台 服务器的各种重要资源情况,包括cpu、内存、磁盘和网络等资源。

    2、注意:性能测试之前要做好系统备份。

    3、性能测试时首先看 性能需求,如果没有需求,这时要根据与客户交流、被测系统的相关资料、以及性能测试工程师的经验,去编写测试计划,进行性能测试。

    4、负载测试和压力测试的区别:

     (国内混用,国外有差别,笔试时需要注意)

    1)共同点都是在测试过程中逐步加压

    2)负载测试是在正常范围内测试   Load Testing

        (见好就收)

    3)压力测试可以在极端范围内测试  Stress Testing

        (使劲折腾)

    4)举例:一座大桥,桥上写最大载重量的车辆,不超过60吨

         但是在桥梁内部建筑资料,最大载重量,不超过70吨

    5、性能测试的背景课程:

    1)数据库(不夸张的说,60%-90%的性能问题都和数据库有关)

    2)操作系统(Linux/Unix)

    3)其它:网络协议、防火墙等知识...

    性能测试的实现方法:

    手动测试:(存在的问题)

     测试人员 ->   Web Server  ->  DB Server

     问题:

       是否有足够的测试资源?测试人员、客户机

       如何调度和同步测试用户?比如并发

       如何搜索和分析测试结果?

    结论:必须使用工具

    6、被测系统

     SUT (System Under Test)

     AUT (Application Under Test)

     EUT (Environment Under Test)

     就是Web Server和DataBase Server两部分的统称

    (Web应用程序 部署其中)   表等资源

    四、LoadRunner工作原理:(录制--回放的工作方式)和QTP类似

    1、录制时,LoadRunner记录下 客户端和服务器 二者之间的对话。

    2、回放时,LoadRunner模拟 真实的客户端 向服务器发起请求,并按照脚本去验证服务器的应答。

    补充说明:有时脚本录不下来,自己写脚本,发现测试时通过了,但实际运行时服务器瘫了。

    原因:没有模拟真实的客户端效果,接收也出现问题,导致失败。

          所以自己写脚本时也要模拟真正的客户端。

    LoadRunner的三大组件:(三个火枪手) OALoad工具类似

    (触类旁通)

    1)虚拟用户脚本生成器(Virtual User Generator)VuGen  VUG

    功能:录制、编辑、调试测试脚本

    2)压力调度控制台 (Controller)

    功能:创建场景、运行场景、监控场景、收集测试数据

    (场景:就是一个大型的配置文件)

    3)压力结果分析器 (Analysis)

    功能:把收集到的测试数据以图表的形式展示出来;

           生成测试报告。

    熟悉AUT: LR自带一个B/S架构的系统 航空订票系统

    HP LoadRunner ->Samples ->Web ->

      Start Web Server先启动服务器

    HP LoadRunner ->Samples ->Web ->

       HP Web Tours Application

    系统地址:http://127.0.0.1:1080/WebTours/

    五、关注AUT,并进行脚本录制

    Web Tours 航班订票系统

    用户名:jojo

    密码:bean

    1、使用LR之前,浏览器修改:

    Internet选项 -> 设置 -> 选中"每次访问此页时检查"

     原因:当脚本更新时,会及时查看到

    2、拷贝AUT的网址,准备测试。

    注意:测试时关闭原先打开的被测网页。

    http://127.0.0.1:1080/WebTours/

    http://localhost:1080/WebTours/

    系统功能说明:

    Flights     订票

    Itinerary  查看订票路线 看订单

    Home      主页

    Sign Off   退出

    细节:需要删除一些干扰文件(涉及Flights的功能)

    D:oracleproduct10.1.0db_1perl5.6.1in 

      MSWin32-x86 目录删除

    D:oracleproduct10.1.0db_1perl5.6.1lib

      MSWin32-x86 目录删除

    案例:录制用户登录脚本

    使用LoadRunner的VUG

     HP LoadRunner -> Application -> HP Vurtual User Generator

     点击New图标 -> New Virtual User -> 默认协议

      -> Create 准备录制

     填写基本信息:

       选择软件架构:Internet Applications (B/S)   默认

                        Win32 Applications (C/S)

       选择浏览器类型:默认IE

       URL Address: 被测系统的网址

           http://127.0.0.1:1080/WebTours/

         或http://localhost:1080/WebTours/

       Working directory: LR工作路径 默认  常用工具命令

       Record into Action: 录制脚本的位置 默认Action

       (vuser_init 初始化  Action    vuser_end 结束)

      -> OK  自动打开浏览器 AUT,开始录制

         关注小操作条 (录制控制  关注数字变化,数字稳定才继续)

      -> 输入jojo  bean

      -> 开始事务 名称login (插入事务) -> OK

      -> Login按钮

      -> 结束事务 login  -> OK

      -> 改为vuser_end模式,点击Sign Off 退出

      -> 关闭浏览器 -> 点击蓝色按钮 Stop 结束录制

    修改字体:Tools -> General Options -> Environment

       -> Editor     Comic Sans MS  14 Bold 加粗

    建议新建目录:D:work    (目录名建议用英文名)

     新建3个子目录:

     script 脚本     ctrl 场景文件    result 结果分析文件

    另存为: D:workscriptday01login  

    关注左上角对应的独立的源文件:(脚本的文件组成)

    vuser_init    初始化脚本  (类C语言)

    Action        最关心的脚本

    vuser_end    结束脚本

    globals.h     头文件 (包含LR函数声明)

    3、在使用LoadRunner录制之前,一定要手工执行待测的测试点。

    比如:登录系统、购买机票

    4、录制时:

    一般将登录的动作录制到vuser_init中;

    关心的测试点(如订购机票、查询路线)录制在Action中;

    而将退出的动作录制到vuser_end代码中。

    原因:Action比较强大,具备其它部分所没有的功能

           比如:参与迭代、设置并发

    5、录制时注意:创建新脚本,要从New开始

    6、如果只是录制登录脚本,则录在Action中即可

    7、lr_think_time(68); 表示该处有68秒时间没有对服务器提交请求

       思考时间

       lr_start_transaction("login");  开始login事务         lr_end_transaction("login",LR_AUTO);   结束login事务

       web_submit_form(...);  发送表单请求

       web_url(..);   发送页面请求

    录制好、调试好脚本,开始运行 Run (VUG)

    想看到运行结果:

     Tools -> General Options -> Replay 回放

     -> After Replay 选择 Visual test results 可视化测试结果

    再回放,会显示结果报告。

    注意:结果的对勾,不一定准确,还需要在脚本中添加一些内容(比如检查点),才完整。

    如果想看回放图形效果:(用处不大)

     Tools -> General Options -> Display

       -> Show run-time viewer during re]  打钩 (取消打钩)

    虚拟用户:Virtual User  简称VU

      在场景中,LoadRunner使用VUser代替实际用户。

      一个场景中,可以包含几十个、几百甚至几千个Vuser.

      使用Vuser被被测系统施加压力。

    原理:每一个虚拟用户,对应一个进程或线程

        常用线程模式,消耗资源比进程少。一般PC机模拟2000个VU

    进程 和 线程的区别?

    1)进程比较消耗系统资源,进程间通信比较麻烦

    2)线程比较节约系统资源,线程间通信比较容易

    VUG: 只能产生一个用户的压力。

    8、如果实现 多用户的测试,则必须打开 控制台Controller。

    (控制台:是指挥部,可以模拟千军万马)

    事务:Transaction   为了记录事务响应时间

    场景:Scenario   法语外译词

         通过控制台来创建场景,相关的场景设置

    9、录制结束后,保存--回放(编译、运行)

     目标:确保脚本执行正常

    10、编译:检查语法错误。 Compile图标

     能检查语法错误,但不能检查逻辑错误

    11、何时需要插入事务?

     关心那段操作,就将此过程作为一个事务。比如只关心订票,就可以不考虑登录。

     目的:LR后续会统计事务的响应时间。

    12、LoadRunner录制时,Action的选择只能从前往后选:

      即 vuser_init ->  Action -> vuser_end

    否则,必须从New开始,重新录制。

    13、打开控制台时,可以关闭掉VUG。因为脚本保存好后,就可供控制台使用。关闭不必要的软件让测试机的性能好些。

    LoadRunner基本测试流程:

    1)指定性能测试计划(部分)     Word

    2)创建测试脚本

    3)编辑、运行测试脚本

    4)创建场景

    5)运行、监控场景,收集数据

    6)生成测试报告,分析测试结果

  • 相关阅读:
    go正则解析log文件
    go的堆排序
    golang实现websocket
    golang接口
    erlang时间操作
    golang函数
    golang for循环
    golang 条件语句if,switch
    golang内建变量类型
    区间存在幂个数
  • 原文地址:https://www.cnblogs.com/Jackbk/p/12693907.html
Copyright © 2011-2022 走看看