--------------------------------------问题描述--------------------------------------
录制了一个登陆的脚本(V1)。录制的时候使用的是英文的账户名(zcltest),然后对脚本进行了参数化。参数化列表中使用了中文。
录制了一个登陆的脚本(V1)。录制的时候使用的是英文的账户名(zcltest),然后对脚本进行了参数化。参数化列表中使用了中文。
脚本回放时发现test result结果中提示账户名或密码错误。
很奇怪,因为中文的账号名都是验证过的。
--------------------------------------寻找真相-------------------------------------
跟同事讨论了下,又录制了一个脚本(V2),这次是以中文账户名录制的。录制完成后,发现两个脚本所使用的函数是不一样的。V2中用户名被url编码了。
"Action=http://www.xxx.com/Ajax/Common/LogonHandler.ashx",
"Method=POST",
"TargetFrame=",
"RecContentType=text/html",
"Referer=http://www.xxx.com
"Snapshot=t7.inf",
"Mode=HTML",
ITEMDATA,
"Name=action", "Value=login", ENDITEM,
"Name=loginname", "Value={name}", ENDITEM,
"Name=password", "Value=000000", ENDITEM,
LAST);
"Method=POST",
"TargetFrame=",
"RecContentType=text/html",
"Referer=http://www.xxx.com
"Snapshot=t7.inf",
"Mode=HTML",
ITEMDATA,
"Name=action", "Value=login", ENDITEM,
"Name=loginname", "Value={name}", ENDITEM,
"Name=password", "Value=000000", ENDITEM,
LAST);
V2中使用的是web_custom_request("LogonHandler.ashx_2",
"URL=http://www.xxx.com/Ajax/Common/LogonHandler.ashx",
"Method=POST",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=http://wwwxxx.com",
"Snapshot=t16.inf",
"Mode=HTML",
"EncType=application/x-www-form-urlencoded; charset=UTF-8",
"Body=action=login&loginname={name}&password=000000",
LAST);
"URL=http://www.xxx.com/Ajax/Common/LogonHandler.ashx",
"Method=POST",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=http://wwwxxx.com",
"Snapshot=t16.inf",
"Mode=HTML",
"EncType=application/x-www-form-urlencoded; charset=UTF-8",
"Body=action=login&loginname={name}&password=000000",
LAST);
--------------------------------------官方说明--------------------------------------
The web_custom_request function is an action function that allows you to create a custom HTTP request using any method or body. By default, VuGen generates this function only for requests that could not be interpreted with other web functions.
看到这句话,我貌似明白了。是因为我的中文请求不能被解释.
--------------------------------------来源于网络的解释--------------------------------------
区别:
web_custom_request方法可以发送POST和GET类型的请求
web_submit_data只能发送POST类型的请求
所有web_submit_data方法发送的请求都可以使用web_custom_request来实现
web_custom_request可以实现web_submit_data无法实现的请求。
web_submit_data只能发送POST类型的请求
所有web_submit_data方法发送的请求都可以使用web_custom_request来实现
web_custom_request可以实现web_submit_data无法实现的请求。
-------------------------------------探索测试--------------------------------------
为了验证下我的理解,做了些探索测试,如下:
V2中:(web_custom_request)
1.尝试把被编码的用户名使用正常的中文,回放后出错。
2.参数化被编码的用户名中添加字母,回放后没有出错。
V1中:(web_submit_data)
1.尝试参数化用户时,使用url编码后的账号,回放后没有出错.
2.尝试使用中文uncoid转换工具,转换后的账户名进行参数化,回放后没有出错