关于EXTRARES的扩展说明—性能测试进阶指南 LoadRunner 11实战(第二版)

发表于:2015-1-07 11:01

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:陈霁、李锋、王臣钧    来源:51Testing软件测试网采编原创

(51Testing软件测试网获得作者授权连载本书部分章节。任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。)
  终端只要设置代理的地址为代理服务器的地址,在访问Internet的时候,VuGen会自动将经过代理服务器的协议请求录制下来,从而实现对任意应用的录制。
  这里我们来模拟一个基于远程电脑Chrome访问百度首页的脚本录制,在Port Mapping中新建一个端口映射策略,注意在Allow forwarding to garget server form local port中选中并设置一个代理的端口,如图A.21所示。
  
图A.21  Port Mapping代理设置
  该设置的作用是在本机上启动一个端口为2000的代理,将这个端口映射成为本机的80端口访问外网(有点网桥的概念),只能通过HTTP协议和访问www.baidu.com才会被录制。接着我们启动录制,录制的对象为LR安装目录下的bin\wplus_init_wsock.exe程序,使用Win32 Applications录制,如图A.22所示。
图A.22  录制代理服务器
  启动录制后,我们会看到wplus_init_scock代理服务器会被启动,如图A.23所示。这个时候所有通过该代理服务器的匹配请求都会被录制下来。
  
图A.23  代理服务器启动
  接着我们来设置一下远程的Chrome浏览器,我们知道默认情况下LR11是无法启动录制Chrome浏览器的,现在通过代理模式来录制,就要设置Chrome浏览器的代理地址,让Chrome走的协议通过我们正在录制的代理服务应用,如图A.24所示。
  图A.24  代理服务器设置
  Chrome使用了IE的代理服务器设置,这里将地址设置为启动代理的服务器IP地址,端口为2000,这样Chrome浏览器的所有协议都会从代理服务器上走过。在Chrome上访问www.baidu.com时就能看到VuGen将这些内容录制下来,停止录制后可以看到对应脚本。注意这个时候回放VuGen会自动将浏览器模拟成IE 4.0。
  在某些基于HTTPS协议系统录制时可能出现请求连接方式是基于SSL安全连接的,并且里面可能会带有证书,那么在添加服务器端口映射页面将Connection Type从Plain设置为SSL,然后在下面配置对应的证书及证书密码即可。
  ② Http Properties
  Advanced:这里可以设置在录制HTTP过程中的一些高级选项,如图A.25所示。
  
图A.25  录制选项下的高级设置
  Reset context for each action:录制中每个action之间是否需要重置context。context中存放请求发送返回后的数据信息,比如服务器返回的html、cookie、session等。选择了这个选项,Action之间会清空相关内容,那么基于行为模拟的函数web_link()会由于没有前文而无法运行,系统自动录制成为基于数据请求的函数web_url()。
  Save snapshot resources locally:在本地保存资源截图。当录制脚本时,LoadRunner会自动将HTML界面中的元素保存到当前脚本的data目录中,使用脚本中snapshot属性值(t数字.inf)作为操作对应的主文件,在.inf文件中说明了该snapshot所对应的内容,当我们切换到tree模式时,就能看到录制时界面的原型。
  虽然snapshot可以帮助我们更加直观地了解请求的返回,但是在进行性能测试过程中更多时候需要理解放回的代码而不是界面,这是因为动态化的客户端技术是无法在snapshot中很好兼容的。
  Generate web_reg_find functions for page titles:是否需要为每一个页面自动生成web_reg_find检查点函数来检查标题的变更。选中该选项后,会自动生成对标题的检查规则,回放脚本时会验证每个标题是否和录制时相同。其中Generate web_reg_find fuctions for sub-frames为子框架生成检查点函数。由于大多数情况页面的标题都是动态的,检查标题是否不变没有太大的意义,所以这个选项一般不做选择。
  Add comment to script for HTTP errors while recording:录制过程中如果出错则添加相关的注释内容。
  Support charset:在前面我们说到录制中文的时候会出现链接或者请求中的中文变成乱码的情况,通过转换函数才解决了这个问题。LR自身也提供了对该问题的解决,只需要在录制前选中该选项,那么所有的请求编码格式都会使用UTF-8的方式来处理,前面的类型转换函数就可以省略了。当访问的页面如果不是UTF-8的编码格式,就不要选中该选项了,否则会因为错误的解码方式导致错误。
  Recording Engine:这是一个兼容性的选项,可以使用以前的录制引擎来录制脚本,注意选择该选项后需要重新启动VuGen,新建脚本才能切换到老的引擎上。
  Recording schemes:这里可以对录制的内容进行过滤。
  Headers:可以录制服务器返回HTTP请求包中的数据包头,如图A.26所示。
  在默认情况下是不录制HTTP Header的,如果有些数据存放在Header中,那么在这里就可以设置需要录制哪些内容,如图A.27所示。
  
图A.26  设置是否录制HTTP headers           图A.27  设置录制的HTTP headers种类
  比如这里需要录制服务器返回的Encoding编码信息,选中Accept-Encoding并单击OK按钮确认(HTTP header的含义参考前面的HTTP分析)即可。录制的结果可以发现脚本中附加了web_add_header()函数。
  web_add_header()函数的作用是为请求附加自定义的数据包头,在某些应用中会通过请求头部分的一些内容来确认客户端合法性,那么就需要通过录制或者手工添加该函数实现包头的定义。
  Content Types:对于录制的正文内容进行过滤,如图A.28所示。
  
图A.28  设置是否录制HTTP content
  在默认情况下,所有的正文内容都会被录制下来,存放在每个请求的EXTRARES中,当脚本回访时会对EXTRARES进行读取验证。如果不需要录制图片等内容,可以在下面的规则中过滤掉多余的内容,如图A.29所示。
  Non-Resources:设置需要录制的请求格式,如图A.30所示。
  
图A.29  设置录制的HTTP content类别   图A.30  设置哪些文件格式作为Non-Resources处理
  这里需要分析一下VuGen根据什么原理录制出来web_url()这种请求,其实它是根据HTTP请求中的返回格式来确定的。在默认情况下,VuGen认为text/html这种返回格式的内容是非资源的正文,需要录制出来,如果你希望将其他格式的请求也单独作为web_url()来进行录制,那么在这里应添加对应的Content Type。例如,添加image/gif,那么再次录制脚本时就会发现,所有的gif图片请求都被作为一个单独的web_url()函数进行处理。各种HTTP请求的文件类型可以先通过HttpWatch进行扫描确定,如图A.31所示。
  
图A.31  通过HttpWatch获得HTTP返回请求的文件类型
  在论坛上我们会访问到有附件的帖子,那么当我们录制一个用户访问帖子并且下载附件的行为时,我们会发现好像下载附件的过程并没有被录制到。
本文选自《性能测试进阶指南—LoadRunner 11实战(第二版)》,本站经作者的授权。
版权声明:51Testing软件测试网获作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
54/5<12345>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号