-
在压力测试过程中,
有时会出现错误,
这在实际
测试中是不可避免的,
毕竟自动
录制生成的脚本难免会有问题,
需要运行脚本进行验证,
把问题都解决后才加入
到场景中进行负载测试。下面结合常用的协议(如
Web
、
Web
Services
协议)
录
制的脚本进行回放时出现的问题介绍一下解决的方法。
p>
需要注意的是,
回放脚本时出现的错误有时是程序自身的原因导致的
,
因此在解
决脚本回放问题前必须保证程序录制出的脚本是正确
的。
1
.
L
oadRunner
超时错误:在录制
Web
< br>协议脚本回放时超时情况经常出现,产生
错误的原因也有很多,解决的方法也不同
。
错误现象
1
:
Action.c(16):
Error
-27728:
Step
download
timeout
(120
seconds)
has
expired when downloading non-
resource(s)
。
错误分析
:
对于
HTTP
协议,
默认的超时时间是
120
秒
(
可以在
LoadRunner
中修
改)
,
客户端发送一个请求到服务器端,
如
果超过
120
秒服务器端还没有返回结
果,则出现超时错误。
解决办法:
首
先在运行环境中对超时进行设置,
默认的超时时间可以设置长一些,
再设置多次迭代运行,如果还有超时现象,需要在“Runtime
Setting”>“Internet Protocol:Preferences
”>“Advanced”区域中设置一
个“winlnet replay
instead of sockets”选项,再回放是否成功。
< br>2
.
LoadRunner
脚本
中出现乱码:在录制
Web
协议脚本时出现中文乱码,在回放<
/p>
脚本时会使回放停止在乱码位置,脚本无法运行。
错误现象:某个链接或者图片名称为中文乱码,脚本运行无法通过。
错误分析:脚本录制可能采用的是
URL-based scr
ipt
方式,如果程序定义的字
符集合采用的是国际标准,脚本
就会出现乱码现象。
解决办法:重新录制脚本,在录制脚本前
,打开录制选项配置对话框进行设置,
在“Recording
Options”的“Advanced”选项里先将“Surport Charset”选
< br>中,然后选中支持“UTF
-
8”的选项。
3
.
LoadRunner
HTTP
服务器状态代码:在录制
Web
协议脚本回放脚本的过程中,
会出现
HTTP
服务器状态代码,例如常见的页面
-404
错误提示、
-500
错误提示。
错误现象
1
:
-404
Not
Found
服务器
没有找到与请求
URI
相符的资源,但还可以
< br>继续运行直到结束。
错误分析:
此处与请求
URI
相符的资源在录制脚本时已经被提交过一次
,
回放时
不可再重复提交同样的资源,
而需要更改提交资源的内容,
每次回放一次脚本都
要改变提交的
数据,保证模拟实际环境,造成一定的负载压力。
解决办法:
在出现错误的位置进行脚本关联,在必要时插入相应的函数。
错误现象
2
:
-500
Internal Server
Error
服务器内部错误,脚本运行停止。
错误分析:服务器碰到了意外情况,使其无法继续回应请求。
解决办法:
出现此错误是致命的,
说明
问题很严重,
需要从问题的出现位置进行
检查,
此时需要此程序的开发人员配合来解决,
而且产生的原因根据实际情况来
定,测试人员无法单独解决问题,而且应该尽快解决,以便于后面的测试。
4
.
LoadRunner
p>
请求无法找到:在录制
Web
协议脚本回放
脚本的过程中,会出现
请求无法找到的现象,而导致脚本运行停止。
错误现象:
Action.c(41):
Error
-27979:
Requested
form.
not
found
[MsgId:
MERR-27979]
Action.c(41):
web_submit_form. highest
severity level
was “ERROR”,0
body bytes, 0 header
bytes [MsgId: MMSG-
27178]”
这时在
tree view
中看不到此
组件的相关
URL
。
错误分析:
所选择的录制脚本模式不正确,
通常情况下
,
基于浏览器的
Web
应用
会使用“HTML
-
based
script”模式来录制脚本;
而没有基于浏览器的
Web
应用、
Web
应用中包含了与服
务器进行交互的
Java Applet
、基于浏览器的应用中
包含
了向服务器进行通信的
JavaScript/VBScr
ipt
代码、基于浏览器的应用中使用
HTTPS
安全协议,这时则使用“URL
-
based
script”模式进行录制。
解决办法:打开录制选项配置对话框进行设置,在“Recording
Options”的
“Internet
Protocol”选项里的“Recording”中选择“Recording Level”为
“HTML
-
based
script”,单击“HTML
Advanced”,选择“Script.
Type”为“A
script. containing
explicit”。然后再选择使用“URL
-based
script”模式
来录制脚本。
5. Abnormal termination, caused by mdrv
process termination
解决:
大胆尝试了修改了
LR
中的
D:Program FilesMercuryLoadRunnerdatprotocols
中的
信息,在
[Vu
gen]
下面新加一条
MaxThreadPerProces
s=
要设置的
vuser
数量
。
常见
loadrunner
问题集锦
1LoadRunner
录制脚本时为什么不弹出
IE
浏览器?
答:启动浏览器,打开
p>
Internet
选项对话框,切换到高级标签,去掉“启用第
p>
三方浏览器扩展(需要重启动)”的勾选,然后再次运行
VuGen
即可解决问题;
2 LoadRun
ner
录制脚本时提示默认浏览器不支持解决方法
?
答:在
Recording Options->Browse
r->
修改浏览器设置
->
改为
IE
浏览器访问
,
重
新启动
LoadRunner
录制脚本就
ok
;
3
录制
Web
脚本时,生成的脚本中存在乱码该如何解决?
p>
答:录制脚本前,打开录制选项配置对话框
Record-Op
tions
,进入到
Advanced
标签,先勾选“Support charset”,选择支持
UTF-8
。重新录制,就不会出现
中文乱码问题了。
4 HTML-based
script
与
URL-based
script
的脚本有什么区别?
答:使用“HTML
-
based <
/p>
script”的模式录制脚本,
VuGen
为用户的每个
HTML
操
作生成单
独的步骤,这种脚本看上去比较直观;使用“URL
-
base
d
script”模式
录制脚本时,
VuGen
可以捕获所有作为用户操作结果而发送到服务器的
H
TTP
请
求,然后为用户的每个请求分别生成对应方法。
通常,基于浏览器的
Web
应用会使用“H
TML-
based script”
模式来录制脚本;
而没有基于浏览器的
Web
< br>应用、
Web
应用中包含了与服务器进行交互的
Java
Applet
、
基于浏览器的应用中包含了向服务器进行通信的
JavaScript/VBScr
ipt
代码、基于浏览器的应用中使用了
HTTPS
安全协议,这时使用“URL
-based
script”模式进行录制。
5
为什么脚本中添加了检查方法
Web-
find
,但是脚本回放时却没有执行?
答:
LoadRunner
默认关闭了对文本及图像的检查
。进入“Run
-
time
Setting”
对话框,依次进入“Internet Protocol→Pref
erences”,勾选
Checks
下的
“Enable Image and text check”选项即可。
p>
备注:推荐
web_reg_find
函数
针对文本及图像的检查。
6
运行时
的
Pacing
设置主要影响什么?
答:
Pacing
主要用来设置重复迭
代脚本的间隔时间。共有三种方法:上次迭代
结束后立刻开始、
上次迭代结束后等待固定时间、
按固定或随机的时间间隔开始
执
行新的迭代。
根据实际需要设置迭代即可。
通常,
没有时间间隔会产生更大的
压力。
7
运行时设置
Log
标签中,如果没有勾选“Enable
logging”,则手工消息可以<
/p>
发送吗?
答:
Enable
logging<
/p>
选项仅影响自动日志记录和通过
lr_log_message<
/p>
发送的消
息。
即使没有勾选,
虚拟用户脚本中如果使用
lr_message
、
lr_output_message
、
lr_error_message,
仍然会记录其发出的消息。
8 LoadRunner
如何在
IE7+Win2003
环境下录制脚本
?
答:
方法一
:
巧借
IE6
内核录制脚本
在系统安装目
录下
C:,
然后在
Recording
Options->Browser,
指定
Ie6
内核
;
设置完成确认后
p>
,
即可以用
LoadRunner
录制脚
本
;
方法二
查看了下官方提供
LoadRunner
解决方法
:
安装
LoadRunner 8.1 Feature
Pack 4->
然后安装
:Internet
Explorer 7 (IE 7)
support for
LoadRunner 8.1 Feature Pack
4
;
9 LoadRunner 8
.0
版本的
VuGen
在录制
Web Services
协议的脚本时一切正常,
但回放时报错误“E
rror
:
s
erver returned an incorrectly formatted SOAP
response”。?
答:原因是
LoadRunner 8.0
的
VuGen
在录制
Web Se
rvice
协议的脚本时存在一
个缺陷:如果服务器的操作系统
是中文的,
VuGen
会自动将
WSD
L
文件的头改为
,因此会有上面的错误提示。
所以需要打上补丁:“LR80WebservicesFPI_”和
“lru
nner_web_sevices_path_”。
10
VuGen
支持
Netscape
的客
户证书吗?
答:
不支持。
目前的
VuGen
8.0
版本中仅支持
Internet
Explorer
的客户端证书。
录制
脚本时可以先从
Netscape
中导出所需的证书,然后将其
导入到
Internet
Explorer
< br>中,并确保以相同的顺序导出和导入这些证书。而且,在每台将要录
制或运行需要
证书的
Web
Vuser
脚本的计算机上都要重复执行前面的过程。
11 LoadRunner
场景执行时第
1
次报错
error:missing newline
in
d:
,第
2
次场景执行时不报错?
答:
Lo
adruner
参数设置
文本时,需要
在最后一个参数后回车确认一
下。
12
LoadRunner
场景执行时出现错误:“load
generator
is
currently
running
the maximum number of vuser of this
type”
答:
Loadruune
r
默认场景并发最大用户数
=1000
,所以需要设置
load
generator->Details->Vuser
limits->Other
Vusers
< br>更换参数值即可,
如
10000
;
当然需要你的序列号是支持,目前最大支持
6.2w
的序列号,强憾吧!
13
VuGen
会修改录制浏览器中的代理服务器设置吗?
答:会修改。在开始录制基于浏览器的
Web
Vuser
脚本时,
VuGen
首先会启动指
定的浏览器。然后,
VuGen
会指示浏览器访问
VuGen
代理服务器。为此,
p>
VuGen
会修改录制浏览器上的代理服务器设置。默认情况下,<
/p>
VuGen
会立即将代理服务
器设置更改
为
Localhost:7777
。
录
制之后,
VuGen
会将原始代理服务器设置还原
到该录制浏览器中。
因此,
在
VuGen
进行录制的过程中,
不可以更改代理服务器
设置,否则将无法正常进行。
14
在
LoadRunner
脚本如何输出当前系
统时间?
答:
LoadRunner
提供了
char
*ctime(const
time_t
< br>*time)
函数,调用参数为一
个
Long
型的整数指针,用于存放返回时间的数值表示。
15 Loadruner
在一些
We
b
虚拟用户脚本录制后立刻回放没有任何问题,但是当
设置迭代
次数大于
1
时,
如果进行回放则只能成
功迭代一次。
从第二次迭代开始
发生错误?
答:
“Run
-time
Setting
”的“Browse
Emulation”的设置中,
勾选了“Simulate
a new user on each
iteration”及其下面的选项“Clear cache on each
i
teration”这两个选项的含义是每次迭代时模拟一个新的用户及每次迭代时清
除
缓存。
16 LoadRunner
中“Run
-
time
Setting”中的线程和进程运行方式的区别?
答:如果选择“Run Vuser as a
process”,则场景运行时会为每一个虚拟用户
创建一个进程;选择“Run
Vuser as a thread”则将每个虚拟用户作为一个线
程来运行,在任务
管理器中只看到一个
,这种方式的运行效率更高,
能造成更大的压力,时默认选项。
另外,如果启用
了
IP
欺骗功能,则先在
Contro
ller
中选中
Tools
菜单下的<
/p>
“Expert Mode”,然后将
Tools
菜单下的“Options>General”标签页中的
IP
地址分配方式也设置为与
Vuser
运行方式一致,同
为线程或进程方式。
17
在
Controller
中运行
Web
相关测试场景时,
经常会有很多超时错误提示,
如
何处理这类问题?
答:
这主要有脚本的默认超时设置引起。
当回放
Web
脚本时,
有时候由于服务器
响应时间较
长,会产生超时的错误。这时需要修改脚本的运行时配置。
进入“Run
-
time
Setting”对话框后,依次进入“Internet
Protocol→Pre
ference”。
然后点击“Options?”按钮,
进入
高级设置对话框,
可以修改各类超时设置的默认值。
18
为什么
Windows
系统中的
CPU
、内存等资源仍然充足,但是模
拟的用户数量
却上不去?
答:在
p>
Windows
计算机的标准设置下,操作系统的默认限制只能使用
几百个
Vuser
,这个限制与
CPU
或内存无关,主要是操作系统本身规定了默认的最大线
程数所导
致。要想突破
Windows
这个限制,须修改
Windows
注册表。以
Windows
XP
Professional
为例。
(
1
)打开注册表后,进入注册表项
HK
EY_LOCAL_MACHINE
中的下列关键字:
Syst
emCurrentControlSetControlSession
ManagerSubSystems
。
(
2
)找到
Windows
关键字,
Windows
关键字如下所示:<
/p>
%SystemRoot%
bjectDirectory=Windows
SharedSection=1024,3072,512 Windows=On
SubSystemType=Windows
ServerDll=basesrv,1
ServerDl
l=winsrv:UserServerDllInitialization,3
ServerDll=winsrv:ConServerDllInitialization,2
ProfileControl=Off MaxRequestThreads=16
SharedSection=1024,3072,512
关
键字的格式为
xxxx,yyyy,zzz
。其中,
xxxx
定
义了系统范围堆的最大值(以
KB
为单位),
yyyy
定义每个桌面堆得大小。
-
-
-
-
-
-
-
-
-
上一篇:成教大学英语一习题集
下一篇:2019年上海市宝山区高考英语二模试卷