性能测试问题总结4

1.  录制Web脚本时,生成的脚本中存在乱码该如何解决

  录制脚本前,打开录制选项配置对话框Record-Options,进入到Advanced标签,先勾选“Support charset”,然后选择中支持UTF-8。在IIS中找到Web.Config文件,在.节加入后再次录制,就不会出现中文乱码问题了。

2.  HTML-based scriptURL-based script的脚本有什么区别

  使用“HTML-based script”的模式录制脚本,VuGen为用户的每个HTML操作生成单独的步骤,这种脚本看上去比较直观;使用“URL-based script”模式录制脚本时,VuGen可以捕获所有作为用户操作结果而发送到服务器的HTTP请求,然后为用户的每个请求分别生成对应方法。

  通常,基于浏览器的Web应用会使用“HTML-based script”模式来录制脚本;而没有基于浏览器的Web应用、Web应用中包含了与服务器进行交互的Java Applet、基于浏览器的应用中包含了向服务器进行通信的JavaScript/VBScript代码、基于浏览器的应用中使用了HTTPS安全协议,这时使用“URL-based script”模式进行录制。

 

3.  为什么脚本中添加了检查方法Web-find,但是脚本回放时却没有执行

  由于检查点功能会耗费一定的资源,因此LoadRunner默认关闭了对文本及图像的检查。要想开启检查功能,必须修改运行时的配置Run-time Setting

  进入“Run-time Setting”对话框,依次进入“Internet ProtocolPreferences”,勾选Checks下的“Enable Image and text check”选项即可。

  检查执行结果时推荐使用web_reg_find方法。

 

4.  运行时的Pacing设置主要影响什么

  Pacing主要用来设置重复迭代脚本的间隔时间。共有三种方法:上次迭代结束后立刻开始、上次迭代结束后等待固定时间、按固定或随机的时间间隔开始执行新的迭代。

  根据实际需要设置迭代即可。通常,没有时间间隔会产生更大的压力。

 

5.  运行时设置Log标签中,如果没有勾选“Enable logging”,则手工消息可以发送

  Enable logging选项仅影响自动日志记录和通过lr_log_message发送的消息。即使没有勾选,虚拟用户脚本中如果使用lr_messagelr_output_messagelr_error_message,仍然会记录其发出的消息。

6.  VuGen会修改录制浏览器中的代理服务器设置

  会修改。在开始录制基于浏览器的Web Vuser脚本时,VuGen首先会启动指定的浏览器。然后,VuGen会指示浏览器访问VuGen代理服务器。为此,VuGen会修改录制浏览器上的代理服务器设置。默认情况下,VuGen会立即将代理服务器设置更改为Localhost:7777。录制之后,VuGen会将原始代理服务器设置还原到该录制浏览器中。因此,在VuGen进行录制的过程中,不可以更改代理服务器设置,否则将无法正常进行。

 

7.  LoadRunner脚本如何输出当前系统时间

  LoadRunner提供了char *ctime(const time_t *time)函数,调用参数为一个Long型的整数指针,用于存放返回时间的数值表示。

  调用语句与返回值如下示例:

  typedef long time_t;

  Action()

  {

  time_t t;

  lr_message(Time in seconds since 1/1/70: %ld\n,time(&t));

  lr_message(System time and date: %s,ctime(&t));

  }

  输出结果为:

  Time in seconds since 1/1/70: 1185329968

System time and date:Wed Jul 25 10:19:28 2007

 

8.  为什么从第二次迭代开始发生错误

一些Web虚拟用户脚本录制后立刻回放没有任何问题,但是当设置迭代次数大于1时,如果进行回放则只能成功迭代一次。为什么从第二次迭代开始发生错误?

  这种现象多是由于在“Run-time Setting”的“Browse Emulation”的设置中,勾选了“Simulate a new user on each iteration”及其下面的选项“Clear cacheon each iteration”这两个选项的含义是每次迭代时模拟一个新的用户及每次迭代时清除缓存。

  由于脚本迭代时,initend只能执行一次,如果每次迭代都模拟一个新的用户并清除缓存,则用户登录信息将一并清除,因此迭代时可能会发生错误。

 

9.  虚拟客户脚本“Run-time Setting”中的线程和进程运行方式的区别

  如果选择“Run Vuser as a process”,则场景运行时会为每一个虚拟用户创建一个进程;选择“Run Vuser as a thread”则将每个虚拟用户作为一个线程来运行,在任务管理器中只看到一个mmdrv.exe,这种方式的运行效率更高,能造成更大的压力,时默认选项。

  另外,如果启用了IP欺骗功能,则先在Controller中选中Tools菜单下的“Expert Mode”,然后将Tools菜单下的“Options>General”标签页中的IP地址分配方式也设置为与Vuser运行方式一致,同为线程或进程方式。

 

10.      Controller中运行Web相关测试场景时,经常会有很多超时错误提示,如何处理这类问题

  这主要有脚本的默认超时设置引起。当回放Web脚本时,有时候由于服务器响应时间较长,会产生超时的错误。这时需要修改脚本的运行时配置。

  进入“Run-time Setting”对话框后,依次进入“Internet ProtocolPreference”。然后点击“Options…”按钮,进入高级设置对话框,可以修改各类超时设置的默认值。

 

11.      为什么Windows系统中的CPU、内存等资源仍然充足,但是模拟的用户数量却上不去

  在Windows计算机的标准设置下,操作系统的默认限制只能使用几百个Vuser,这个限制与CPU或内存无关,主要是操作系统本身规定了默认的最大线程数所导致。要想突破Windows这个限制,须修改Windows注册表。以Windows XP Professional为例。

  (1)打开注册表后,进入注册表项HKEY_LOCAL_MACHINE中的下列关键字:System\CurrentControlSet\Control\Session Manager\SubSystems

  (2)找到Windows关键字,Windows关键字如下所示:

  %SystemRoot%\system32\csrss.exe bjectDirectory=\Windows

  SharedSection=1024,3072,512 Windows=On SubSystemType=WindowsServerDll=basesrv,1

  ServerDll=winsrv:UserServerDllInitialization,3ServerDll=winsrv:ConServerDllInitialization,2

  ProfileControl=Off MaxRequestThreads=16

  SharedSection=1024,3072,512关键字的格式为xxxx,yyyy,zzz。其中,xxxx定义了系统范围堆的最大值(KB为单位)yyyy定义每个桌面堆得大小。

  (3)yyyy的设置从3072更改为8192(8MB),增加SharedSection参数值。

  通过对注册表的更改,系统将允许运行更多的线程,因而可以在计算机上运行更多的Vuser。这意味着能够模拟的最大并发用户数量将不受Windows操作系统的限制,而只受硬件和内部可伸缩性限制的约束。

 

你可能感兴趣的:(性能测试)