利用http/html协议进行脚本录制时必须web页面出来后才能正常录制,这种录制和创建场景的方法都要受到页面展现的影响,从而影响服务端真正的性能数据,这里以淘宝的登录为例,使用http/html协议录制的代码:
------------------------------------------------
 web_submit_data("login.jhtml_2",
  "Action=http://member1.taobao.net/member/login.jhtml",
  "Method=POST",
  "RecContentType=text/html",
  "Referer=http://member1.taobao.net/member/login.jhtml?f=top",
  "Snapshot=t3.inf",
  "Mode=HTML",
  ITEMDATA,
  "Name=TPL_username", "Value={nick}", ENDITEM,
  "Name=CtrlVersion", "Value=1,0,0,7", ENDITEM,
  "Name=support", "Value=000001", ENDITEM,
  "Name=tid", "Value=XOR_1_000000000000000000000000000000_63584451400508727803077F", ENDITEM,
  "Name=TPL_password", "Value=3DES_2_000000000000000000000000000000_A1B707D2820DE4DEB68AAD49D3B2DCBE", ENDITEM,
  "Name=Submit", "Value=登 录", ENDITEM,
  "Name=actionForStable", "Value=enable_post_user_action", ENDITEM,
  "Name=action", "Value=Authenticator", ENDITEM,
  "Name=TPL_redirect_url", "Value=", ENDITEM,
  "Name=event_submit_do_login", "Value=anything", ENDITEM,
  "Name=abtest", "Value=", ENDITEM,
  "Name=pstrong", "Value=", ENDITEM,
  "Name=from", "Value=", ENDITEM,
  "Name=yparam", "Value=", ENDITEM,
  "Name=done", "Value=", ENDITEM,
  EXTRARES,
  LAST);
----------------------------------------------
通过树型模式查看web_submit_data向服务器发送的实际数据:Image
根据这些数据我们可以利用web_custom_request函数自定义发送数据如下:
------------------------------------------------
web_custom_request("web_custom_request",
  "URL=http://member1.taobao.net/member/login.jhtml",
  "Method=POST",
  "TargetFrame=",
  "Resource=0",
  "Referer=",
  "Body=TPL_username=baoju2&TPL_password=taobao1234&Submit=%B5%C7+%C2%BC&actionForStable=enable_post_user_action&action=Authenticator&TPL_redirect_url
=&event_submit_do_login=anything&abtest=&pstrong=2&from=&yparam=&done=",
  LAST);
------------------------------------------------
利用自定义函数发送数据的好处:
1)更能真实地反映服务器处理能力
2) 使用性能测试提前
3)另外个人认为,此方法可以运用到功能测试中,在测试登录时可以参数化其中的一些数据,达到数据驱动测试的目的。