基于Web的自动化测试方法及应用

发表于:2010-5-05 16:21

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

 作者:耿锐丽(IT168)    来源:51Testing软件测试网采编

  协议测试主要包括以下几个方面:

  (1)Html源代码解析

  通过Protocol Client利用HTTPWebRequestObject从Server端获得相应页面源代码,对于每一个Http Web请求都会有一个cookie管理器。以下是一些实现的代码:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = method;
request.Accept = defaultAcceptHeader;
request.KeepAlive = true;
request.UserAgent = defaultUserAgent;
request.AllowAutoRedirect = false;
request.Headers.Add("Accept-Language", defaultAcceptLanguage);
request.CookieContainer = new CookieContainer();
.Proxy = null;

if(method.Equals("POST", StringComparison.InvariantCultureIgnoreCase))
{
 request.ContentType = @"application/x-www-form-urlencoded";
}


  当数据请求完毕后,我们需要从源代码数据中解析出Web控件。我们一般要对这些控件设置两个方法:verifyExists和RaisePostback。

  在verifyExists多采用正则表达式去匹配物理属性和特定字串来唯一验证控件的存在与否。

  RaisePostback对应于典型的ASP.NET中的doPostBack函数的Html控件,比如:

function __doPostBack(eventTarget, eventArgument) {
 var theform;
 if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) {
  theform = document.Form1;
  }
 else {
   theform = document.forms["Form1"];
 }
 theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
 theform.__EVENTARGUMENT.value = eventArgument;
 theform.submit();
}


  我们将解析Html源代码中具体的string,比如

<SELECT language=javascript id=cmbLanguage onchange="__doPostBack('cmbLanguage','')" name=cmbLanguage> <OPTION value=2052 selected>Chinese (China)</OPTION><OPTION value=1033>English</OPTION> <OPTION value=1036>French</OPTION> <OPTION value=1041>Japanese</OPTION></SELECT>

  构建以下的postback的参数值:

__EVENTTARGET = 2052,
__EVENTARGUMENT = “”,
__VIEWSTATE = dDwxOTkxNzQ3MzYzO3Q8O2w8aTwyPjtpPDM+Oz47bDx0PEA8ZW47Pjs7Pjt0PDtsPGk8MT47aTwzPjs
+O2w8dDx0PDtwPGw8aTwwPjtpPDE+O2k8Mj47aTwzPjtpPDQ+O2k8NT47aTw2PjtpPDc+O2k8…..XZlbnQgRGV0YWlsczs
+Pjs+Ozs+Oz4+Oz4+Oz4+Oz4+Oz7iSD2R0wFRR8N23W+zhPjmz0hB2Q==

  以上是在实际项目中对Web进行测试时采用的一些方法和思路,希望能对大家的测试工作带来帮助。当然具体的实现还需要根据实际的项目进行调整和完善以得到最好的测试结果。


 

22/2<12
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • FLY000
    2010-7-09 13:44:40

    看不太明白

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号