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会不一样!