2013-06-29 70 views
0

下面是一个用于在客户端生成代码的javascript函数。 然后将此函数生成的代码与用户输入的代码进行比较,如果匹配,则将请求传递给服务器。 我在Load Runner中做脚本,我需要在客户端关联这个动态生成的代码(这可能不可能,因为它不被服务器返回),或者我应该将javascript函数转换为c函数,并且在负载运行脚本中实现。将javascript函数转换为用于loadrunner脚本的c函数

请帮忙。

function DrawCaptcha() 
{ 
    var a = Math.ceil(Math.random() * 10)+ ''; 
    var b = Math.ceil(Math.random() * 10)+ '';  
    var c = Math.ceil(Math.random() * 10)+ ''; 
    var d = Math.ceil(Math.random() * 10)+ ''; 
    var e = Math.ceil(Math.random() * 10)+ ''; 
    var f = Math.ceil(Math.random() * 10)+ ''; 
    var g = Math.ceil(Math.random() * 10)+ ''; 
    var code = a + ' ' + b + ' ' + ' ' + c + ' ' + d + ' ' + e + ' '+ f + ' ' + g; 
    document.getElementById("txtCaptcha").value = code; 
    document.form1.txtInput.value=""; 
} 

function ValidCaptcha() 
{ 
    var str1 = removeSpaces(document.getElementById('txtCaptcha').value); 
    var str2 = removeSpaces(document.getElementById('txtInput').value); 
    if (str1 != str2) 
    { 
    alert("Captcha Does Not Match"); 
    document.form1.txtInput.focus(); 
    DrawCaptcha(); 
    return false; 
    } 

} 

function removeSpaces(string) 
{ 
    return string.split(' ').join(''); 
} 

回答

0

在LoadRunner中重现代码(如有必要)。由于这是一个客户端验证码,而不是服务器端验证码,所以您可能不得不做任何事情,因为没有接收到该值并将其传递给服务器,并且在下一个请求发出之前所有服务都将成为本地网守。

由于您已经记录了下一个请求,这将是积极验证码的结果,因此您可能不得不做任何事情,除非再次运行脚本,而不是承受任何需要到位的其他非验证码动态数据执行下一页。

+0

你是什么意思,“不承担任何其他非验证码动态数据需要到位才能执行下一页”?除非验证码验证,否则我无法继续处理下一个请求。如何在LR中重现代码,在这里帮助? –

+0

如果您的验证码在客户端本地生成并在本地进行身份验证,并且在移动之前不涉及基于服务器的身份验证,那么您可能甚至不需要包含代码,因为您已经从成功验证码中捕获了肯定测试用例与您的下一组请求。您可能只需确保填写验证码的人员具有适当的思考时间(请参阅http://www.google.com/recaptcha作为基于服务器的机制示例) –