使用 JavaScript 实现 Web 应用程序 HTTP 请求-响应测试自动化
2010-03-26 00:00:00 来源:WEB开发网getVS 函数的主要设想就是,向要测试的应用程序发送基本的 GET 请求、提取响应并解析出 ViewState 值。$.ajax 函数可接受匿名函数。Async、type 和 URL 参数应该都可以对自身进行说明。响应 resp 对象的 hasOwnProperty(“d”) 方法主要是一个在 Microsoft .NET Framework 3.5 中提供的安全机制,在这种情况下没有必要使用。
我通过查找该属性的起始位置,然后数过 24 个字符到达 ViewState 值真正开始的位置来提取 ViewState 值。getEV 函数代码与 getVS 代码完全相同,只是 EventValidation 值从初始 id=EVENTVALIDATION 属性的 30 个字符处开始。拥有单独的 getVS 和 getEV 函数后,您就可以灵活把握但需要两个单独的基本请求。另一种方法就是将 getVS 和 getEV 重构到单一的帮助程序函数。
sendAndReceive 帮助程序函数将执行实际的 HTTP 请求并提取生成的响应。此函数首先将原始 ViewState 和 EventValidation 字符串转换为 URL 编码的字符串,然后构建发布到 Web 应用程序的数据:
function sendAndReceive(target, rawVS, rawEV, inputData) {
vs = encodeURIComponent(rawVS);
ev = encodeURIComponent(rawEV);
postData = inputData + ‘&__VIEWSTATE=’ + vs +
‘&__EVENTVALIDATION=’ + ev;
...
对于发布数据中为非法值的字符,内置 encodeURIComponent 函数将它们编码为转义序列。例如,“/”字符编码为 %2F。在记录消息后,sendAndReceive 将使用 $.ajax 方法创建 HTTP POST 请求:
logRemark("Posting " + inputData);
$.ajax({
async: false,
type: "POST",
url: target,
contentType: "application/x-www-form-urlencoded",
data: postData,
...
Tags:使用 JavaScript 实现
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接