Web自动化测试中如何绕过登陆?

发表于:2017-6-01 11:01

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

 作者:叶勇    来源:游学者丶勇

  Web自动化测试过程中,有一个十分困扰我们的问题,就是如今大部分的系统,都是需要登陆的,并且在登陆的过程中,由于安全原因,一般都会有验证码挡住了去路。那么我们有没有什么办法解决这个问题呢?
  通过网上查阅资料和了解大家的解决方案中,我们大致可以分为以下几种:
  1、与开发沟通,通过修改代码,绕过验证码的部分。
  2、与开发沟通,设置一个万能验证码,每次填写验证码都输入这个验证码,并且可以识别。
  3、通过Cookie操作,来达到登陆的目的
  4、通过selenium来操作本地浏览器
  第一点和第二点,是目前web测试过程中用的比较多的解决办法,这两个办法的确一劳永逸,不用再关心这个问题。但是问题在于,这个只适合测试环境,线上由于安全问题,这些改动都是不允许的。我们重点来讨论一下第三种和第四种办法。
  第三点,操作Cookie,我们以百度为例,步骤如下:
  首先手动登陆百度,通过Fiddler或者其他工具拿到登陆之后的所有Cookie
  然后我们找到关键的Cookie,通过代码写入到该域
  没有增加cookie的代码,我们直接访问百度是这样的
  但是,我们增加这两个关键cookie后,再次访问百度
  登陆成功!
  不过这种办法,也不是一劳永逸的办法,这两个cookie中,第二个cookie值很可能变化,其他web系统可能也存在同样的问题。所以,通过cookie来绕过登陆的办法,可以尝试使用,但是要注意应用 的环境。
  第四种,操作本地浏览器。大家都知道,我们的浏览器自带了记住密码的功能,而且这些web系统一般登陆过后,再次访问,是直接登陆了的。(可能有个比较长的有效期),所以我们是不是有办法操作本地的浏览器呢?答案是肯定的。selenium的driver(无论是firefoxdriver还是chromedriver等)打开浏览器,默认都是不带任何插件和个人设置的,所以我们之前每次跑自动化测试的时候,感觉就像是打开了一个新的浏览器一样,其实这是去掉了所有profile的情况。拿我们如果要操作profile的话,就需要通过在代码中增加本地的配置,来启动浏览器。代码如下:
  如何自定义一个profile我们可以进行如下操作(以火狐为例):
  关闭所有火狐浏览器,Window键+R打开运行,输入“你的狐火浏览器安装运行目录路径” -P:
  可以看到下面的窗口:
  代码中我们可以使用default或者自己新建一个配置文件。(这里有个坑,default不一定能打开浏览器,不行可以新建一个配置,然后使用新建的这个)
  然后,我们需要手动的登陆一个我们要测试的web系统,仍然以百度为例子,最后执行我们的代码,发现,打开的页面就是登陆后的页面
  总结:
  第一种和第二种,有需要跟开发沟通的成本,并且用安全风险。
  第三种和第四种,个人建议使用第四种,只需要第一次手动登陆系统,后面再执行代码,都是操作的这个已经登陆的浏览器配置。
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • zhumao
    2017-6-19 18:00:41

  • zhumao
    2017-6-19 16:18:57

    登录  登陆 傻傻分不清楚

  • wdm5564330
    2017-6-07 11:20:11

    学习了 !

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号