• 自动化测试——从MySQL数据库中读取短信验证码


    背景:前一段时间,为公司某系统进行自动化测试。系统的注册页面需要输入手机号,并点击获取验证码验证手机号。

    当然,测试时的手机号是假的,而且验证码也可以随便填写,供测试所用的系统也没有对验证码的正确性进行校验。但是,最近提测的系统不知被调皮的程序员们做了什么手脚,居然不再允许随便填写验证码,而是需要在点击获取验证码后到数据库中查看生成的验证码是什么,再在注册页面填写该验证码。这对自动化测试实在不便(以前我都是让程序直接在验证码输入框中输入1的……),怎么办呢,总不能点击获取验证码后让程序sleep30秒,期间测试人员以迅雷不及掩耳盗铃之势到数据库中查看验证码,再手动填写吧,这样也太不符合自动化的意义了。于是,摸索了一下Python使用MySQL数据库,代码如下:

    import MySQLdb
    
    conn = MySQLdb.connect(host='172.16.20.217',port=3306,user='root',passwd='password',db='krd20150821')
    cur = conn.cursor()
    # 查询表中最后一条数据的验证码字段
    cur.execute('SELECT MESSAGE_NOTE FROM SYS_TEL_MESSAGE ORDER BY ID DESC LIMIT 1')
    message = str(cur.fetchone())
    yzm = filter(lambda x:x.isdigit(), message)

    cur.fetchone()执行后得到的是一个元组,将其转换为字符串,再过滤掉数字之外的字符后,就是最终所需要的验证码。
    虽然,代码还有缺陷,如果有多人同时在测试,则得到的验证码便有可能是别人手机号的验证码。不过还好,只有我用它测试,够用就好。

  • 相关阅读:
    使用telnet模拟http请求
    07_Python变量内存地址、小数据池
    04_Linux命令
    03_Linux文件和目录
    06_Python Encoded
    05_Python Format Operation
    04_Python Data Structures
    02_Python基本数据类型
    01_软件开发流程
    03_线性表应用一:栈
  • 原文地址:https://www.cnblogs.com/desperado0807/p/5172076.html
Copyright © 2020-2023  润新知