11.0 获取手机验证码

在我们刚学ui自动化的时候,基本上所有的人都会在获取验证码这一块有那么一个梗,卡在这里,很不得劲——————————————

 因为我们几乎都是从登录注册开始....遇到的第一个难题就是验证码....

 其实获取验证码只是一个基本操作...我们不需要太在意..直接让开发弄个万能验证码就可以了

 当然有些变态的伙计,非的处理这个验证码,不然吃嘛嘛不香--------

所以本章说一下获取手机短信验证码的基本操作.....当然如有图形验证码直接让开发撸掉吧..因为这个东西本来就是防止自动化操作的...与其花费时间研究这个---不如去看两部电影....就当假装已经搞定了..

1.python链接mysql数据库

  

Install 即可!

链接方法:

代码:

import pymysql
#查询
def selectSQL(sql):
    db = pymysql.connect(host="host", port=端口号int类型, user="账号", password="密码",
                         db="数据库名称", charset='utf8')
    cursor = db.cursor()  
    cursor.execute(sql)  
    return cursor.fetchall()  #或者cursor.fetone()

 比如现在有一个表:user

查询语句为: a=select *  from user where sex=”

id

name

age

city

sex

1

张三

17

深圳

2

李四

18

北京

3

王五

17

上海

4

麻六

18

柬埔寨

取值【常用】方式一共有两种:

第一种 fetchone-----他是你每次取值只返回一个元组,查询返回(1.张三”,17,”深圳”,”,执行selectSql(a)  他只会返回第一条数据!

  修改脚本:

 

def selectSQL(sql):
    db = pymysql.connect(host="host", port=3116, user="账号", password="密码",db="数据库名称", charset='utf8')
    cursor = db.cursor()  #面向对象  创建一个游标对象
    cursor.execute(sql)  # 执行sql语句,返回一个值——他会直接返回一个值,所以不需要db.commit()
    M=Cursor.fetchone()  #取出第一条数据
    N=Cutsor.fetchone()  #取出第二条数据
    return M,N  # 返回M,N的值
   
#所以它针对少量取值---讲道理不是写博客--这个方法我几乎快忘了..我几乎没用过

 

 

第二种方式:fetchall  ,顾名思义...取出所有的

 

  Selectall(a)之后取出来的结果是一个二维素组...

 

  格式:mary=((1.”张三”,17,”深圳”,””),(2,xxxxxx),(3,xxx),(),(4,xxxx))

 

    因此在用到这个二维数组的时候需要而外的处理一下如:mary[0][1]的值是张三---把元组当做列表取值就可以了!

 

 

 

 

 

上面说的是查询,如果是增删改呢---加一个db.commit()需要提交一下!

 

因为增删改是修改数据库...万一sql语句执行失败了,肯定是要回滚,所以需要回滚一下!完整的增删改方法,

代码:

 

def selectSQL(sql):
    db = pymysql.connect(host="host", port=3116, user="账号", password="密码",
                         db="数据库名称", charset='utf8')
    cursor = db.cursor()  
    cursor.execute(sql) 
    try:
        db.commit() #提交
    except:
        db.rollback() #回滚

 

另外...为什么这里没有db.close()关闭数据库链接呢,我主要是看数据库的连接池的最大值是多少...

---我自己封装的方法就没有..所以复制过来的方法也没有--....不过建议大家在最后加上一个db.close()关闭数据库链接...

 

某些小公司验证码可能是放在数据库,所以直接链接数据库取就好了!

 

 

 

2.如果公司是用的redis数据库的话,那么你就下载一个redis客户端,并完成安装

 

下载地址:链接:https://pan.baidu.com/s/16WLMwZ5a5gVF4vFU4yy6Dg 密码:9s6w

  安装redis,傻瓜式操作...就不截图了..

  第一步,  redis客户端连接服务器

    

 

    然后任意输入名称,指定的host地址,端口号,auth 密码,有则填写,无责点击 test connection 测试链接....链接成功之后 ,点击ok即可

    

 

 

    

 

  第二步,pycharm安装redis库, 和安装PyMySql一样

    

 

 

python连接redis方法:如果redis无密码,就不要红色区域标识的这两个

  

 

如:获取验证码

如图所示,这个地方就是key....下图可以看到..我们已经把验证码取出来了对吧....所以在进行ui自动化的时候我们直接用就可以了

然后我们看到我取出来的这个玩意是个啥.......“双层冰激凌” 竟然是字符串内嵌字符串...这个是开发存的问题....直接eval(取出来的这个值就可以了)....如果开发存的是ok..你取出来的就是一个单纯的字符串,直接用就好了!

是不是基本操作........

 

另外最后在插上一嘴:   开发可能把不同模块的验证码放到redis不同的目录下....所有可能导致  不同模块的key是不同的  例如:修改密码时的短信验证码和注册时的短信验证码  key会不一样!

原文地址:https://www.cnblogs.com/pythontest/p/9532652.html