每天进步一点点
做性能或自动化测试登录系统时验证码的解决方案
上一篇 /
下一篇 2013-07-05 11:32:06
/ 个人分类:自动化测试
登录系统时往往要输入验证码,这也是系统出于安全的考虑,防止别人使用软件暴力破解密码,侵入系统。
我们做性能或
自动化测试时,需要录制脚本,而验证码是随机生成的,这怎么解决呢,可以留个后门,弄个自己才知道的万能验证码。前提是要有系统的源码,上一篇
日志已经介绍了如何搭建
JAVA开发环境及如何部署项目,现在就让我们开始吧。
先找到并打开LoginAction.java文件,找到登录时跟验证码有关的代码:
String v_code = (String)session.getAttribute(CommonServlet.VERIFY_CODE);
if(!v_code.equalsIgnoreCase(verifyCode)){
//this.addActionError("验证码错误!");
request.setAttribute("result", "yzmError");
this.result = "yzmError";
return "relogin";
}
verifyCode中存放的就是用户输入的验证码,在程序判断为错误验证码时增加一个条件:
&& !verifyCode.equals("WNYZM")
即:if(!v_code.equalsIgnoreCase(verifyCode) && !verifyCode.equals("WNYZM"))
这样就成功设置了万能验证码:WNYZM
这里注意一下:我开始是用的verifyCode!="WNYZM"这种方式,验证不行,verifyCode为Stirng类型,比较两对象
的值是否相等要用equals()方法。
保存后,在项目的目录中拷贝出类文件:LoginAction.class
上传到测试环境中,重启系统,即可生效
把录制的脚本中的验证码改为:WNYZM,
@Test
public void testUntitled() throws Exception {
selenium.open("/IDS/");
selenium.type("id=userName", "admin");
selenium.type("id=password", "123456");
selenium.type("id=verifyCode", "WNYZM");
selenium.click("name=Submit");
这样每次都能成功登录了。
收藏
举报
TAG: