分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
一:基本介绍
在Loadrunner的使用中,对于Run-time Settings下的browser emulation设置是比较容易让人产生困惑的地方。下面我们结合sniffer来具体看看每个选项的用途,以及对测试的影响。
Browser Emulation 图
首先说一下,各个选项的含义:
Check for newer versions of stored pages every visit to the page选项
该设置将指示浏览器检查指定 URL 的较新(与存储在缓存中的 URL 相比)版本。启用该选项时,VuGen 将向 HTTP 标头中添加“If-modified-since”属性。此选项将打开页面的最新版本,但将在场景或会话执行期间生成更大的流量。默认情况下,浏览器不检查较新的资源,因此禁用该选项。配置该选项以匹配要模拟的浏览器中的设置。
Download non-HTML resources选项
该选项指示 Vuser 在回放期间访问网页时加载图形图像。其中包括同页面一起录制的图形图像,还包括未明确同页面一起录制的图形图像。当实际用户访问网页时,需要等待图像加载。因此,如果尝试测试整个系统(包括终端用户时间),请启用该选项(默认情况下启用)。要提高性能并且不模拟实际用户,请禁用该选项。
注意:如果在图像检查中遇到了差异,请禁用该选项,因为每次访问网页时,一些图像会随之改变(例如,广告横幅)。
Simulate a new user on each iteration选项
指示 VuGen 将各个迭代之间的所有 HTTP 上下文重置为 init 部分结束时相应的状态。使用该设置,Vuser 可以更准确地模拟开始浏览会话的新用户。它将删除所有 Cookie,关闭所有 TCP 连接(包括 Keep-Alive 连接),清除模拟浏览器的缓存,重置 HTML 帧层次结构(帧编号将从 1 开始)并清除用户名和密码。默认情况下启用该选项。
Clear cache on each iteration选项
每次迭代时清除浏览器缓存,以模拟第一次访问网页的用户。清除该复选框可以禁用此选项并允许 Vuser 使用浏览器缓存中存储的信息,模拟近期访问过该网页的用户。
再来说说,我的想法:
性能测试是一门综合性的技术,它对测试人员要求很高,不仅仅需要了解性能测试工具的应用,而且还需要你了解操作系统、数据库、应用软件等多方面的知识。从这里我们也可以看到针对lr的不同参数的设置,而引起了测试数据的不同。lr的设置对应着IE的一些相关设置。这里就表现出了我们不仅仅要熟悉lr,还要深入了解lr和IE的对应关系。相信如果我们了解并应用好这些设置以后,我们在用户现场、产品入围等多种情况下,一定会取得您意想不到的惊喜!
我们可以看到不同的选项对服务器所产生的问题负载是不同的,负载主要产生在连接数和下载数据包的大小的不同。我们已经明确了解到了不同的选择对服务器可能导致的影响,那么我们怎样将它运用到实际的性能测试场景中去呢,我对此也经常感觉迷惑!从我这边来往往有几种组合策略来处理:
第一:最轻松的策略:下载所有的资源、去产生最大可能的连接数去和服务器交互。
(我尝试过,我们心中总有这么一个概念:系统如果最大的负载都能承受下去了,那么现实过程中有着缓存的机制,那么这个性能肯定能过关说句实在话,如果这样做多了,良心会不安的!呵呵!开发知道了会对我们大声指责的!
第二:模拟。实际性能测试本身就是在模拟过程,模拟的过程越精确,那么我们的性能测试结果越准确。在性能测试中一共有三类模拟的过程,而这个我把它归在“操作行为的模拟”这一类上。我们在回头看LoadRunner的这几个设置选项,这些选项我把它分了两类的模拟设置:IE行为的模拟以及程序行为模拟。
IE行为的模拟(对应tacy里面介绍的ABCD):IE可以设置不同的策略来进行cache资源或者数据,那么我们回到实际用户操作中来,用户会按照什么策略来设置IE这些选项呢?聪明的用户肯定会利用浏览器的cache来加快运行速度,但是从我们实际调研过程中呢,感觉大多数用户基本上都会采用浏览器的本身的设置,不会做过得的变动。除非开发程序自动对这个进行限制或者提醒。所以这个选项我大多采用浏览器的默认设置或者程序操作说明书的要求去设定它!但是也会考虑新用户以及老用户的比例来做不同的设置策略.
程序行为的模拟:有些程序在javascript中设置把cache清除,要求每次操作必须重新建立连接,我们将采取这种策略去模拟它,所以这个行为的模拟我们往往会看程序设定的情况来设置
在这个设置中,我感觉LR有一个不太好的地方,如果我设置新用户(以及文件保留过期的用户)的操作以及老用户的设置这些选项时,我不得不把同样的脚本在controller放两个,然后设置不同的run time setting选项来模拟现实情况,这一点Webload好像就比它强一点!
二:案例和工具
1. 测试案例: