zoukankan      html  css  js  c++  java
  • 性能,自动化,UI自动化处理验证码

    一,注释掉验证代码。

        web系统,经过加密处理的一些验证码,  注释掉代码对验证码的校验,此方法只需要修改代码,在测试环境操作。

    二,设置一个万能码。

       去掉验证码的主要是安全问题,为了应对在线系统的安全性威胁,可以在修改程序时不取消验证码,而是程序中留一个“后门”---设置一个“万能验证码”,只要用户输入这个“万能验证码”,程序就认为验证通过,否则按照原先的验证方式进行验证。

    复制代码

    #coding=utf-8
    import random
    
    #生成0到10之间的随机数
    #d = random.uniform(0,10)
    #print d
    
    #生成一个1000到9999之间的随机整数
    d = random.randint(1000,9999)
    print u"生成的随机数:%d " %d
    
    i = input(u"请输入随机数:")
    print i
    
    if i == d:
        print u"登录成功!!"
    elif i == 1111:
        print u"登录成功!!"
    else:
        print u"请重新输入验证码!"
    复制代码
     

    运行结果:

    复制代码
    >>> ================================ RESTART ================================
    >>> 
    生成的随机数:3764 
    请输入随机数:1111
    1111
    登录成功!!
    >>> ================================ RESTART ================================
    >>> 
    生成的随机数:3763 
    请输入随机数:3763
    3763
    登录成功!!
    >>> ================================ RESTART ================================
    >>> 
    生成的随机数:1928 
    请输入随机数:1354646
    1354646
    请重新输入验证码!
    复制代码
     

    random

    random用于生成随机数

    randint()

    randint()方法用于生成随机整数,传递的两个参数分别是随机数的范围,randint(1000,9999)第二个参数要大于第一个参数。

    我们要求用户输入随机数,并且对用户输入做判断,如果等于生成的随机数那么,登录成功,如果等于1111也算登录成功,否则失败。那么等于1111的判断就是一个万能码。

    三,验证码识别技术

      例如可以通过Python-tesseract 来识别图片验证码,Python-tesseract是光学字符识别Tesseract OCR引擎的Python封装类。能够读取任何常规的图片文件(JPG, GIF ,PNG , TIFF等)。不过,目前市面上的验证码形式繁多,目前任何一种验证码识别技术,识别率都不是100% 。

    四,记录cookie

    (适用于UI自动化测试,且目前在大部应用的用户名密码不记录在cookie 或 进行加密处理。)

      通过向浏览器中添加cookie 可以绕过登录的验证码,这是比较有意思的一种解决方案。我们可以在用户登录之前,通过add_cookie()方法将用户名密码写入浏览器cookie ,再次访问系统登录链接将自动登录。例如下面的方式:

    复制代码
    ....
    #访问xxxx网站
    driver.get("http://www.xxxx.cn/")
    #将用户名密码写入浏览器cookie
    driver.add_cookie({'name':'Login_UserNumber', 'value':'username'})
    driver.add_cookie({'name':'Login_Passwd', 'value':'password'})
    #再次访问xxxx网站,将会自动登录
    driver.get("http://www.xxxx.cn/")
    time.sleep(3)
    ....
    driver.quit()
    复制代码

    使用cookie进行登录最大的难点是如何获得用户名密码的name ,如果找到不到name 的名字,就没办法向value 中输用户名、密码信息。

     

  • 相关阅读:
    【POJ 3162】 Walking Race (树形DP-求树上最长路径问题,+单调队列)
    【POJ 2152】 Fire (树形DP)
    【POJ 1741】 Tree (树的点分治)
    【POJ 2486】 Apple Tree (树形DP)
    【HDU 3810】 Magina (01背包,优先队列优化,并查集)
    【SGU 390】Tickets (数位DP)
    【SPOJ 2319】 BIGSEQ
    【SPOJ 1182】 SORTBIT
    【HDU 5456】 Matches Puzzle Game (数位DP)
    【HDU 3652】 B-number (数位DP)
  • 原文地址:https://www.cnblogs.com/yanyx/p/10167859.html
Copyright © 2011-2022 走看看