一、背景:
随着公司的业务发展,操作管理平台的频率也越来越多,而且公司的平台token是失效时间很短,重复的登录让人烦躁不已,重复耗时,效率比极差,重复登录巨low无比,汗~~
二、目标:
实现公司业务管理平台jenkins一键构建登录,用户名密码等自动填写、验证码自动识别,解放双手,提高生产力
既定目标如下:
三、准备工作:
1 python3
2 第三方库:Pillow ; pytesseract ;selenium
3 验证码驱动文件安装:tesseract-ocr-setup-4.0.0-alpha.20170804.exe (安装目录随意,最好不要中文目录)
4 修改python目录:C:\Python36\Lib\site-packages\pytesseract下的"tesseract_cmd" 字段值为你验证码的驱动目录
5 配置环境变量:PATH→ C:\softuser\tesseract-ocr (驱动安装目录)
TESSDATA_PREFIX→ C:\softuser\tesseract-ocr\tessdata(驱动安装目录的下级目录)
6 jenkins安装和配置使用
四、代码实现过程:
1、导入相关库包:
from PIL import Image # python3版本需要安装Pillow库即可使用
from pytesseract import *
from selenium import webdriver
import time
2、定义类初始化参数
说明:初始化时,参数类型可根据自己习惯任意定义,此处用到的是字典和列表
3、定义打开浏览器函数
def driver_init(self,url):
self.driver = webdriver.Firefox()
self.driver.get(url)
self.driver.maximize_window()
说明:此处使用的是火狐浏览器,可以根据实际情况,使用其他浏览器,只要下载对应的驱动即可使用
4、获取验证码区域的截图
说明:此处可进一步优化,可固定屏幕大小来进行验证码区域的截取,提高准确性
5、识别验证码
def identification_verifying_code(self): # 对验证码图片进行处理,得到验证码字符串
'''识别验证码'''
image = Image.open('yzm.png')
code = pytesseract.image_to_string(image)
print("你的验证码是:" + code)
return code
说明:上面做的很多工作,其实都是为了这块做准备的,识别验证码的过程是很简单的
6、登录函数
说明:定位页面元素,传入对应的值,点击登录按钮
7、run函数
def use_login(self):
self.login_cscnew(addres=self.platform_address.get("beta_cscnew"), brthid=self.beta_csc_list[0], username=self.beta_csc_list[1], password=self.beta_csc_list[2])
说明:运行主方法,调用全部整合资源
8、调用方法:
五、jenkins配置过程
1、安装相关的python插件
2、创建一个自由风格的工程,配置如下:
3、立即构建
4、构建成功