300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > python登录验证码生成及自动化测试规避

python登录验证码生成及自动化测试规避

时间:2018-11-01 09:01:43

相关推荐

python登录验证码生成及自动化测试规避

在用django写论坛的时候,需要有登录及注册功能。

故就登录界面后端需要生成随机验证码并传值给前端的代码进行编写如下。

验证码生成png需要调用到python的图形库

生成注册码img

import stringimport sysimport randomfrom PIL import Image,ImageDraw,ImageFont'''生成随机验证码'''def Capture(size=4, chars=string.ascii_uppercase + string.digits):return ''.join(random.choice(chars) for _ in range(size))'''验证码生成图片'''def Capture_img():# 定义使用Image类实例化一个长为120px,宽为30px,基于RGB的(255,255,255)颜色的图片img1 = Image.new(mode="RGB", size=(120, 30), color=(255, 255, 255))# 实例化一支画笔draw1 = ImageDraw.Draw(img1, mode="RGB")# 定义要使用的字体font1 = ImageFont.truetype('arial.ttf', 36)color1 = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))draw1.text([24,0], Capture(), color1, font=font1)# 把生成的图片保存为"capture2.png"格式pngPath=sys.path[1]+"\\static\capture2.png"print(pngPath)with open(pngPath, "wb") as f:img1.save(f, format="png")

效果如:

自动化测试

由于验证码是随机生成的且存储在session内,所以如果测试要进行自动化测试,方案:

1.注释验证码的验证,当需要测试验证码功能时,请独立验证

2.修改源码,将生成的验证码存储备份到其他可获取的地方

3.调用pyhton的验证码识别类: Pillow(python图像处理库)、OpenCV(高级图像处理库)、pytesseract(识别库)

第三点仅适用本方式实现的验证码,如果前端是使用滑动等图形效果的,暂时不适用

且第三点从成本方案上说,不如1/2点快捷。

生成注册码img

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。