zyp1

LR11 并发测试-参数化-综合场景测试(引用)

   LR11-03

一、并发测试(n VU)
  1、并发测试两个条件
    1)脚本中要有 集合点(并发点)
    2)控制台中要设置并发策略(选择第一项,所有虚拟用户到达集合点后释放)

 集合点: 5个线程,代表5个VU 并发执行一次购票
  o------------|o------
  o------------|o------
  o------------|o------
  o------------|o------
  o------------|o------
                 此时设置集合点(并发点)
 等所有线程到达集合点时,才一起释放,此时的压力最大(瞬时压力)。
 注意:在事务开始之前,设置并发点

  2、并发点 只有在并发测试中使用。(在单脚本中用不到,可以注释掉,在控制台中做并发测试,要)
         案例:在脚本中添加并发点,执行并发测试
           需求:并发购票
          (1)修改脚本(VUG中)
           注意:在事务脚本之前添加
              lr_start_transction("buy");
     在事务开始之前 -> 点击Insert -> Rendezvous
         -> 输入集合点名称Rendezvous Name: buy  一般与事务名相同
         就会生成脚本:lr_rendezvous("buy");
         -> 编译 Compile(同时会立即保存)
         注意:修改完脚本,要及时编译。

     打开控制台,进行并发测试。
         加载day/buy脚本。注意,如果加载后修改脚本,需要在控制台中刷新脚本。
         右击脚本文件路径 -> Details 细节 -> Refresh 下拉菜单,
                选中Script: 刷新脚本  (很常用)
                    选中Runtime Settings: 控制台中的设置被覆盖 (不常用)
         提示:可以在控制台中,打开某个脚本  View Script 按钮

      脚本中发生变动(加了检查点、集合点、代码等)
        1)一定要点击编译 Compile按钮,同时也会自动保存
        2)在控制台中要刷新脚本
         (2)设置并发策略(Controller中)
    控制台中要设置并发策略:(参考:并发点策略_2.png)

    选择Scenario菜单 -> Randezvours...  并发点-> 打开窗口,设置策略  ->  点击Policy按钮 (策略)
         第1项:Release when 100% of all Vusers arrive at the rendezvous.   (选择此项)
               当100%虚拟用户到了集合点时释放虚拟用户VU
               (所有VU的n%)  10个VU 都算  10 * n%
         第2项:Release when 100% of all running Vusers arrive at the rendezvous.
               当100%正在运行的VU到达集合点时释放VU
               (所有正在运行的VU的n%)
                   如果10个VU只有5个正在运行,5 * n%
         第3项:Release when 1 Vusers arrive at the rendezvous.
               指定n个虚拟用户达到集合点,再释放
            Timeout between Vusers: 30 sec
             超时时间:两个虚拟用户之间的 (一般到不了,默认不改)

    完成5个VU的并发:
         控制台 -> Basic schedule -> Quantity 改为 5
         Start Vusers: 用户数少,登录时间快,不用改
         Duration: 选Run until completion  表示瞬时压力
        继续设置Run-time Settings:
             Run Logic: 迭代次数  1
             Pacing: 改为As soon as the previous iteration ends.
             Log: 默认
             Think time: 默认 忽略 Ignore think time
                  好比:不停地发请求,不给喘息时间

    并发测试:注意think time要忽略。
        原因:think time时间越长,对AUT的压力越缓,而并发测试是严格的测试,所以要忽略该时间。
        目的:将最大的压力模拟出来。

    配置完毕 -> 运行场景 -> 查看结果报告

并发测试要点回顾:
     1)事务前设置并发点  
     2)控制台中设置并发策略
     3)要忽略Think time


二、参数化
    类似于QTP的参数池,比如可以模拟不同的用户进行登录
    以不变的业务(脚本),处理不同的数据

    提示:如何提高技术表达能力?
        阅读大量技术评论文章,包括每天的笔记。多熟悉技术术语。
         找机会多说。
        独立写出技术文章。

 1、定义
    对脚本中的常量进行参数化,让不同的VU在执行相同的脚本时,分别使用参数池的不同数据替代这些常量,从而达到模拟多用户真实使用系统的情况。

 2、步骤:
    1)确定需要参数化的数据
    2)准备数据 (参数池)
    3)参数化

   先打开WebTours首页,注册一个用户qq 密码qq
     首页 -> Sign up now  开始注册
       Username: qq
       Password: qq
       Confirm:   qq
       ...不填

    注册后会以文件方式保存用户信息:(模拟数据库)
    C:\Program Files\HP\LoadRunner\WebTours\MercuryWebTours\users

   针对buy脚本进行参数化:
    为了便于还原,备份buy脚本,
    另存为day03\buy1   File -> Save As
      找到init脚本需要参数化的常量: jojo
          双击jojo 选中 -> 右击
           -> Replace with Parameter  用一个参数代替
           -> 弹出窗口:
             Parameter name:  name    参数名称
             Parameter type:  File   文件类型,大部分都选
             Original value: jojo    例子
           -> {name}
          密码也类似:将bean 用同样办法替换为{pwd}
          到此,定义好两个参数。

    接着考虑参数的数据准备:VuGen
      倒数第2个图标按钮:Open Parameter List-> 参数池 窗口
      左侧可选择不同的参数名称,可编辑
      点击name-> Edit with Notepad 按钮 使用记事本来编辑
          name
          jojo
          qq
          注意:用ctrl+a检查 确保光标在最后一行的下一行开头
                保存关闭
          First data: 1改为 2  从第2行开始取数据(原数据还在)
      同理:pwd也加1行值:qq
             First data: 也改为 2(从第2行开始取数据,原数据还在)
      -> Close
      参数池数据准备完毕

    编译脚本 -> 运行脚本

    如果运行失败,根据回放日志Replay Log查看原因:
          Script Aborted! 脚本被放弃了!
    原因:其它位置(检查点函数)使用了jojo,也需要进行参数化
      选中jojo -> 右击 -> Use Existing Parameter -> 选name-> {name}

    新的需求:让jojo和qq各自订一张票
     首先清空AUT中jojo和qq的订票记录,观察新的结果
     在Parameter List中,First data: 1  从jojo开始取
     在Run-time Settings中:迭代次数:2 (Action)
         编译 -> 运行
     遇到的问题:jojo登录1次,订票2次
              init和end只会执行一次,Action可以迭代多次
     解决方法:将init中的脚本剪切到Action中,参与迭代
     注意:保留原有函数的语法格式(类C语言)
         vuser_init(){
            return 0;
         }
     重新编译 -> 回放
     说明:只要不退出,就是在线,就可以一直发请求。
          LR主要关注的是数据包,而QTP主要关注的是界面。

 3、要点归纳
    1)参数化时,参数池中的数据写好后,要让光标停留在新的一行。
否则可能导致出错(白行或者缺少数据)。
        技巧:ctrl + a 观察格式
    2)init只执行一次,Action参与迭代,在参数化时需要注意。
    3)LR依靠网络协议录制脚本,脚本中记录的是请求数据包信息,只要用户在线(登录成功),则可以继续发送请求到达任意界面,也可实现循环操作。

 4、参数池的策略初步(Parameter List窗口中设置)
     特点:功能强大,LR产品的一个卖点(出彩) BS/MS题 拔高点
    1、Select next row (取值方式 How?)
       Sequential  顺序的(默认) 取完第1行,取第2行...
       Random   随机取
       Unique    唯一取
       Same line as pwd..   和xxx步调一致pwd取法一样
    2、Update value on (更新方式 When?)
       Each iteration   每次迭代时取值 (取值)
       ...

作业:
1、对于查询订单,进行基准测试和5用户、10用户的并发测试,并记录其平均响应时间。(生成3项)
2、回顾之前所有内容(尤其是测试理论、数据库)


一、继续学习参数化
  案例:注册30个用户,脚本要求:
    1)脚本中一定有检查点
    2)保证30个用户全部成功
    3)用单机执行还是控制台? 使用单机VuGen
    原因:使用VuGen 单机,压力较缓,容易成功。
           测试数据,尽量不用控制台
    提示:1VU,使用迭代
    每注册1个用户,会在C:\Program Files\HP\LoadRunner\WebTours\MercuryWebTours\users中会多1个以新注册的用户名 命名的文件

  先准备用户数据:使用Excel 设计 qq1~qq30   1~30
  开始录制注册脚本:
     New ->  New Virtual User界面说明:
      左侧:
      New Single Protocol Script 新的单协议脚本(较简单)
      New Multiple Protocol Script 新的多协议脚本(较复杂)
      New Script Recent Protocol 刚打开过的协议
      上方:
      Ajax..异步通信,局部刷新支持、
      Flex 就是Flash动画协议、
      Oracle[2-Tier]两层协议、
      Oracle NCA 是.Net新技术、
      Web Services技术(异构平台之间互操作  C <--> Java)
      最常用的:Web[HTTP/HTML] 协议

     Create -> 输入URL -> Action 注册需要迭代 -> OK
     等待events数字不动后 (页面下载完毕)
     -> 点击Sign up now
     -> 输入Username: www   Password: 1  Confirm: 1
     -> 开始事务reg -> Continue -> 进入欢迎页面
     -> 插入检查点: Thank you, www, 
     -> 结束事务reg
     -> 切换为vuser_end -> 点击Continue -> Sign Off
     -> 关闭浏览器 -> Stop

  保存脚本:script/day04/reg
    将脚本进行备份:另存为day04/reg1    File-> Save as ...
      提示:LR脚本编辑器有局限,撤销ctrl+z 步数是有限的。
      技巧:多备份

  配置方法(2种)
  方式一:做两个参数池 name 和 pwd
      双击www选中 -> 右击 -> Replace with a Parameter 
        -> 命名 name -> {name}
      双击 1 选中 -> 右击 使用参数代替 -> 命名pwd -> {pwd}
      双击 1 选中 -> 右击 Use Existing Parameter 
       使用已存在的参数 -> 选中 pwd -> {pwd}
      再检查需要替代的固定值:检查点中需要替换
       双击www -> 替换成已存在的 {name}

    将参数池添加完整:
     Open Parameter List... -> 进入参数池配置窗口
     先填name -> 将Excel中的name值拷贝 -> name.dat  
       -> Edit with Notepad   name后粘贴   qq1~qq30
     再填pwd -> 拷贝1~ 30 -> pwd.dat
       -> Edit with Notepad   pwd后粘贴  1~30   注意格式!(光标在最后1行开始,用ctrl+A检查)
     关闭窗口

     准备运行脚本(不用打开控制台)
        -> 打开Run-time Settings:
          Run Logic -> Number of Iterations: 10  
          Pacing -> 选第2项:random 随机 2 ~ 3 秒
            After the previous iteration ends:with a random delay of 2.000to 3.000 sec
           提示:机器配置高,一般配置2~3秒;若配置低,延长些:6~9秒
          Log 不变 当前是标准日志,如果让日志更详细,可使用扩展日志
                  Standard Log  标准日志
                Extended Log  扩展日志                 选择
                Parameter subsitution 进一步查看 参数替代信息  选择
          Think time -> 单选 Replay think time 
            -> Use random percentage of recorded think time:
               Min: 50%    Max: 150%
            根据录制时间给出百分比,比如录制10秒,50%到150%就是5到15秒
                原因:(做数据,要保证成功)
     配置完成,开始运行...
        10次迭代,大约10分钟、
    方法一的局限:如果是1个大型项目,用户名和密码较多,多个用户名和密码一般在一起
    问题:2个参数值,能否写在一起?
    解决:name.dat、pwd.dat-》xxx.dat(分列方式)采用方式二
  方式二:将两个参数表的参数放在一起。
     name的本质:就是一个name.dat文件 进入脚本文件夹 打开
     将reg另存为reg2    File -> Open -> reg

     做两个参数池:{name}  {pwd}
       选中www -> 替换为参数 -> {name}
       选中1   -> 替换为参数 -> {pwd}
       选中1   -> 使用已有的代替 -> {pwd}
       检查点 选择www -> 使用name代替 -> {name}  

     Open Parameter List... -> 配置参数池
       选择name -> Add Column  加列 -> 起列名 pwd  名字任意
           Edit with Notepad 编辑文本 
           -> 大量替换:将Tab字符全部替换成逗号,  -> 关闭
            name,pwd
            qq1,1
            qq2,2
            ...
            qq30,30
          此时,完成两列数据写在一个文件中。
          在File format中,默认指定Column: Comma  逗号分隔
                还可以选择:Tab 制表符 或 Space 空格
       选择pwd参数 -> File 选成 name.dat 共享一个文件
          之后针对name和pwd选择列:
          Select column: 两种办法
             By number: 1   列号    name选1  pwd选2
           或By name: 根据列名指定
          避免数据重复,First Date都从11行开始
          -> Close  编译
      打开Run-time Settings:
        Run Logic: 迭代 10次
        Pacing: 第2项 随机 2~3秒
        Log: 选择扩展日志,进一步查看参数替代信息
        Think time: 单选Replay think time
                    使用随机的 50%  150%
     配置完成 -> 运行脚本

  结论:推荐使用第二中方式,比较常用。
    (曾经的一道上机题,主要考察参数化、关键是参数池策略)

二、参数池的策略 (BS/MS题:讲讲参数池的策略)
  1.参数化:(关心的是数据)
      1)、含义:同样的业务,出现不同的数据,考虑采用脚本参数化技术
      2)、步骤:
          确定参数化的数据-->准备数据->提供策略-->参数化
      3)、准备数据 (目前:File方式)
        <1> 每个参数使用独立文件 (参数池)
        <2> 多个参数共享同一个文件 (常用)
          Excel工具、Column(序号、列名)、First Data(从哪开始)
      4)、参数池策略 (重点、难点)
         Select next row:  选择下一行(How?如何取?)
             a) Sequential   默认 顺序的
             b) Random      随机取
             c) Unique       唯一取
             d) Same line as xxx   和xxx步调一致
         Update value on: 更新方式(When?何时取)
             a) Each iteration    默认  每次迭代
             b) Each occurrence  每次遇到该参数时取值
             c) Once  取值仅一次
        When out of values: 数据不足时的处理情况
             a)放弃虚拟用户  Abort Vuser
             b)以循环的方式继续  Continue in a cyclic manner
             c)持续取最后一个值  Continue with last value(原地踏步)



        1、选择下一行 (How? 如何取?)Select next row
            1)顺序的 Sequential :从第一行开始顺序向下取值
            2)唯一的 Unique: 从第一行开始,唯一的向下取值
                        (用过了,就取新的值)
                   例如:数据a b c d e f g ...,现有3个用户(甲乙丙)取值;循环2次。
                A) 顺序方式:甲(a, b) 乙(a, b) 丙(a, b)
                B) 唯一方式:甲(a, b) 乙(c, d) 丙(e, f)
                         如果是注册,采用唯一方式,用过了就不能再用
                c) 对于单用户来说,顺序和唯一取值序列是相同的。
            3)随机的 Random: 随机取值。(值可能重复)
            4)Same line as xxx: 取值策略与xxx相同  (行相同)
        2、更新方式(When? 何时取?)Update value on
            1)每次循环 Each iteration: 每次迭代时取值 (常用)
                 指的是:Action中的脚本,每次迭代时更新值
            2)每次遇到 Each occurrence: 每次遇到该参数时取值
                 指的是:比如每次遇到{name}时,都会换一次值
            3)取值一次 Once: 脚本运行过程中只取值一次
                 值的是:一次选择,终身不变
            另外,When out of values: 当选择Unique时才出现,表示取值越界后的处理方式
        3、数据不足时的处理情况(只有选择Unique时适用)
            说明:顺序、随机时认是数据时充足的
            规律:当选择顺序方式时,数据取到最后一行,再循环从第一行选取。
           When out of values: 有三种策略
                1)放弃虚拟用户  Abort Vuser
                2)以循环的方式继续  Continue in a cyclic manner
                3)持续取最后一个值  Continue with last value(原地踏步)

     5)、需求:注册脚本,多用户,则数据池取值策略?
        注册脚本,多用户 --- UEA组合(Unique+Each iteration+Abort Vuser)(唯一+每次迭代+放弃虚拟用户)
          另外常见的组合:-----SE组合(Sequential+Each iteration)(顺序 + 每次迭代)
  Parameter List窗口中:



三、综合场景测试 --- 号称能够最真实的模拟实际生产环境

综合场景案例1
    综合场景的几个要素:
        多用户、
        多个脚本(至少3个)、
        在线执行(多种操作)一段时间(1小时、50分钟等),一般是不加并发点。
    注意:只要是多用户,就存在并发
          综合场景测试过程中,所有用户循环执行相应的操作。

  1、录制三个脚本(测试点):购买机票、查询线路、浏览航班;每个脚本都加检查点(手工)。准备进行综合场景。

    首先做一个设置:(目的:为了让页面标题变为自动的检查点)
        VuGen中 点击录制选项按钮 Edit Recording Options 
            General-> 选择第三项 Recording  脚本录制方式 不用改  (默认选择HTML方式)
        HTTP Properties-》选择HTML Advanced高级 ->
            选择Preferences复选框:
                  Generate web_reg_find functions for page titles
                为页面标题生成检查点函数
                      再选择:Support charset -> UTF-8  对中文网站支持比较好
         -> OK
         以后都可生效。

        练习:录制一个登陆脚本,查看配置效果
             新建脚本 -> OK -> 输入jojo和bean 
             -> 开始事务login -> 点击Login按钮 -> 结束事务login
             -> 插入检查点"Welcome, jojo, to the"
             -> 改为vuser_end  -> Sign Off -> 关闭浏览器 -> Stop

        发现:web_reg_find("Text=Web Tours", LAST);
        每个页面都有,只验证页面的标题。比如:跳转到错误页面,则标题是不同的。
        规律:虽然在事务结束后,插入检查点,由于web_reg_find函数是注册性函数,
            所有还是在相应请求之前。

    开始练习录制脚本:day05目录下/ buy search  scan
    (1)购买机票  buy
         录制过程和之前一样,注意添加检查点、事务点
    (2)查询路线  search
         New脚本 -> vuser_init -> 输入jojo和bean
         -> 开始事务login -> 点击Login -> 结束事务login
         -> 改为Action -> 点击Flights按钮
         -> 选择城市从Denver到 Paris  -> 开始事务search
         -> 点击Continue -> 添加检查点 "Denver to Paris"
         -> 结束事务search
         -> 改为vuser_end -> Sign Off -> 关闭浏览器 -> Stop
    (3)浏览航班  scan
         New新建 -> 改为vuser_init -> 输入jojo和bean
         -> 开始事务login -> 点击Login -> 结束事务login
         -> 改为Action -> 开始事务scan -> 点击Itinerary按钮
         -> 设置检查点 "A total of" -> 结束事务scan
         -> 改为vuser_end -> Sign Off -> 关闭浏览器 -> Stop

    注意:检查点会浪费性能,所以手工添加检查点时,只需1~2个即可
    场景设置的前提:确保脚本录制、调试、回放成功。

  2、需求:10用户综合场景
    综合场景设置要求:
        1)修改脚本:
        2)设置场景:
        3)虚拟用户加载部署情况:
        4)Run-time Settings设置


    1)修改脚本:
      脚本事务中的think time时间要删除或或者移到事务之外。
      原因:如果综合场景测试保留think time,在事务之内会起作用,从而影响事务的响应时间,导致结果不准确。

    操作:对三个脚本都要移动 buy  search  scan
        (包括:init、Action、end都要找遍)
      lr_think_time(25);
      lr_start_transaction("login");
      ...其中没用思考时间...
      lr_end_transaction("login", LR_AUTO);

    注意:修改后脚本都需要重新编译
        如果脚本中有并发点,要注释掉;因为综合场景中有并发,但是不需要产生瞬时压力,无需设置集合点。
        //lr_rendezvous("buy"); 

    2)设置场景:
      打开控制台 -> New Scenario -> Browse 浏览 找到具体的脚本
      -> 依次选择 day05/下的三个脚本 -> OK
      -> 进入场景配置界面 保证3个脚本都打钩
      -> 单选 Basic schedule
      Group Name 默认就是脚本名   Quantity
        buy.3                             2
        search                            4
        scan                              4
      一共10个VU,保持合适的比例,平时根据客户的需求

    接着还需处理Scenario Schedule:
      Schedule by: 
        Scenario  默认按照场景方式 (选择)
                      特点:所有脚本共享同一场景
                按场景:场景中,多个VU统一配置、行动 
           或 Group 按组方式,分组设置场景
            按组:每个组,组内VU统一行动 (按组行动)

    重点设置左下角Global Schedule:
         以上三个脚本都选中,一次配置三个(出现黑框) ->
         Start Vusers双击-> 设置一个小的递增  单选第2项
         ->  1     00:00:01 [HH:MM:SS] -> OK
             每隔1秒钟加载一个VU
         -> 及时观察右边效果图:锯齿状

     Duration 双击
         -> 单选第2项:Run for 0 days and 00:30:00 (HH:MM:SS)
         -> OK  确定指定的时间 30分钟 (项目中一般50分钟、1小时)
          如果第1项:Run until completion 直到结束,适合于循环,确定次数;
          如果第3项:Run indefinitely  一直跑,直到手动停止

    虚拟用户加载部署情况:
        A)每隔1秒钟加载1个VU
        B)Duration: 30分钟
        说明:由于Duration运行的是Action部分,
            所以指的是VUs登录后运行30分钟。10个虚拟用户,10个线程,各自运行,模拟实际生产环境。

    3)Run-time Settings设置
        设置左上角按钮:Run-time Settings (细节较多)
          选择三个脚本(出现黑框)-> 点击按钮 Run-time Settings
         ->弹出窗口,选择“多”运行模式  RTS的简写 
               Share RTS 共享  / Individual RTS 独立的
        先选择Individual RTS 独立的,会依次配置每个脚本,配置完某个脚本会自动打开窗口配置后续的。
        1)General
         Run Login -> Number of Iterations:  1  不变
        Pacing -> 改为第2项After the previous iteration ends:  随机间隔2~3秒
        Log -> Enable logging (选择)
                 Log options:
                       Send messages only when an error occurs 出错时才发日志(选择)
                       Alwarys send message  总是发日志
                     Log message at the detail level of:
                           Standard log  标准日志(选择)
                           Extended log  扩展日志

         Think time: 随机百分比,可以适当调大些  
                 Use random percentage of recorded think time:
                   Min: 200%    Max: 300%
          Additional attributes:  附属选择/特殊参数值,目前不配置
          Miscellaneous:  杂项
                 Error Handling中 -> Continue on error  打钩 出错时继续
              原因:长时间测试过程中会执行大量的事务,不要因为某个错误而停止场景的运行。
                说明:
             a)Error Handling中:
              Continue on error    出错时继续(选择)
                  Fail open transactions on lr_error_message  使用不多
                  Generate snapshot on error 出错时,生成快照,使用不多
                      原因:会增加工具资源消耗,影响测试结果
               b)Multithreading中:    Thread 线程
                Run Vuser as a process  以进程方式 (比较消耗资源)
                Run Vuser as a thread  以线程方式(比较省资源)默认(选择)
               c)Automatic Transactions中: 自动定义事务 (不设置)
                Define each action as a transaction:  
                       每一个Action都作为一个事务,比如:脚本中有3个
                Define each step as a transaction:
                       每一个步骤都作为一个事务(每一句代码,产生过多的响应时间结果)
                   过于热闹,主次不分,出现过多的响应时间结果
        2)Network 
            Speed Simulation -> Network Speed  模拟网速
                Use maximum bandwidth: 使用最大带宽 (选择)
                          准备一个充足的带宽,将最大压力呈现给服务器
                    Use bandwidth: 使用选择的带宽
                    Use custom bandwidth(bps): 使用用户自定义带宽
        3)Browser 
             Browser Emulation -> 模拟浏览器
            Browser properties  属性配置
                User-Agent 浏览器信息...
                     Simulate browser cache 模拟浏览器的Cache 缓存
                       目的:提高客户端的浏览速度  -> (去掉打钩!)  
                        Cache URLs requiring content [HTMLs]
                    Check for newer versions of stored pages every visit to the page.
                Download non-HTML resources 下载非HTML资源 (打钩)
                Simulate a new user on each iteration 模拟新用户(打钩)
                    Clear chache on each iteration 每次迭代清缓存(打钩)
        4)Internet Protocol 
            Proxy:  No proxy 默认不要代理 (默认打钩)
                  Use custom proxy 如果使用公司代理服务器,则选择
              Preferences:  都不要改
                   -> Options... 打开 -> 将三个120改为600
                    指的是超时时间,保证充分时间,达到成功
            包括:HTTP-request connect timeout(sec) -> 600
                   HTTP-request receive timeout(sec) -> 600
                   Step download timeout(sec)          -> 600
        点击OK后 -> 开始第二脚本的设置(和之前一样,复习一遍)
     依次完成:buy.3、 search、 scan的设置。

    run-time settings设置总结:
      说明:迭代次数默认1 具体次数由持续时间决定
        (1) pacing: 随机4-6秒 或 5-9秒,选择第2项
              正常:2-3秒,教学机较慢,设置偏大些,保证不出错
        (2) 日志log: 保留原有选项(出错时发送)
              原因:大量日志也会占用磁盘空间。
        (3) Think time: 随机百分比,适当调大 200% - 300%
        (4) Continue on error: 错误时继续
              原因:长时间执行大量事务,个别出错继续运行,不影响全局。
        (5) Vuser选择 线程 方式。节省系统资源
        (6) 网络:模拟用户的网络,使用最大带宽
        (7) 模拟缓存:选择不模拟
               使用场合:1、对AUT实施严格测试  2、门户网站
        (8) Option 选项:3个120改为600
               一般疲劳测试设置600足够了。
        (9) 选择监控AUT服务器资源时注意:
            网络选loopback(回环,前提当前服务器为本机;如果服务器不是本机,一定不能选回环);
            选择磁盘(或CPU)资源时,遇到total就选total.
        (10) 加完资源,就可以运行场景。
    4)Windows resources配置
      (Run视图 右下角窗口)
       右击窗口-> 
       Add Measurements... ->
          Monitered Server Machines: 选机器  点击Add.按钮 ->
                Machine Information:
                       Name: localhost  指定监控服务器的IP地址,主机名
                               目前就是本地主机
                       Platform: WINXP
       -> OK
         Resource Measurements on: localhost  清空里面所有选项

           自己完成选项的添加(固定13项)
          -> 点击Add按钮 -> 选择以下内容:
           1)Memory中有4项:(内存)
             Available MBytes            -> Add
             %Committed Bytes in Use   -> Add
             Page Faults/sec              -> Add
             Pages/sec                    -> Add
           2)Network Interface中有2项: (网络)
             Bytes Total/sec -> MS TCP Loopback inter...回环-> Add
                     本地主机才选回环
             Packets/sec     -> MS TCP Loopback inter...回环-> Add
                     本地主机自己和自己通信,用回环
           3)PhysicalDisk中有4项(2个队列):(磁盘)见到Total就选
             Avg.Disk Queue Length      ->  Total  -> Add
             Current Disk Queue Length  ->  Total  -> Add
             Disk Read Bytes/sec         ->  Total  -> Add
             Disk Write Bytes/sec        ->  Total  -> Add
           4)Processor中有2项:(进程)
             %Processor Time    -> Total  -> Add    Total表示总和
             %User Time         ->  Total  -> Add
           

分类:

技术点:

相关文章: