广州建站代运营公司有哪些,福州网站建设工作室,济南地区做企业网站的公司,wordpress点击tag跳回首页hello大家好#xff0c;我是你们的小编#xff01;
本商城测试项目采取PO模型和数据分离式架构#xff0c;采用pytestseleniumjenkins结合的方式进行脚本编写与运行#xff0c;项目架构如下#xff1a; 1、创建项目名称#xff1a;code_shopping#xff0c;创建所需项目…hello大家好我是你们的小编
本商城测试项目采取PO模型和数据分离式架构采用pytestseleniumjenkins结合的方式进行脚本编写与运行项目架构如下 1、创建项目名称code_shopping创建所需项目文件 2、在tools层中建立 get_log.py文件复制以下代码 此为项目日志工具使用时直接调用即可
import logging.handlers
from conftest import BASE_PATH
import os# 新建类
class GetLog:# 新建一个日志变量__logger None# 新建获取日志的方法classmethoddef get_logger(cls):# 判断日志器为空if cls.__logger is None:# 获取日志器cls.__logger logging.getLogger()# 修改默认的级别cls.__logger.setLevel(logging.INFO)log_path BASE_PATH os.sep result os.seplog os.sep AT.log# 获取处理器th logging.handlers.TimedRotatingFileHandler(filenamelog_path,whenmidnight,interval1,backupCount3,encodingutf-8)# 获取格式器fmt %(asctime)s%(levelname)s[%(filename)s(%(funcName)s:%(lineno)d)]-%(message)sfm logging.Formatter(fmt)# 将格式器添加到处理器中th.setFormatter(fm)# 将处理器添加到日志器中cls.__logger.addHandler(th)# 返回日志器return cls.__loggerif __name__ __main__:log GetLog.get_logger()log.info(1111)log.error(22222)3、在scripts中建立 sh_login文件夹和 test_login.py文件 开始编写商城登录页面代码 4、在test_login.py中编写脚本 商城登录页面包含帐号密码滑动验证码的混合验证模式 4.1首先将验证码的2张图片下载到本地注意填写等待图片加载时间通过商城HTML页面发现图片经过base64加密需解码保存本地 # 获取图片的地址
# sleep(3)
img driver.find_element(By.XPATH, (//*[idapp]/div/div[2]/div[3]/div[1]/img[1]))
img2 driver.find_element(By.XPATH, (//*[idapp]/div/div[2]/div[3]/div[1]/img[2]))s img.get_attribute(src)
s2 img2.get_attribute(src)
# print(type(s))
# print(s)
# 使用split()函数将字符串拆分成多个数字
numbers s.split(,)
numbers2 s2.split(,)
# print(numbers)
# print(type(numbers))
# 获取图片的base64加密数据
djd numbers[1]
djd2 numbers2[1]
# 输出提取出的数字
# print(djd)
# base64解码
lk base64.b64decode(djd)
lk2 base64.b64decode(djd2)
# 获取图片到本地
pic open(re.png, wb)
pic2 open(can.png, wb)
pic.write(lk)
pic2.write(lk2)
pic.close()
pic2.close()4.2 对图像进行处理计算出滑块的拖动距离此方法单独写在test001.py文件方便调用
import cv2# 对图像处理
def handel_img(img):imgGray cv2.cvtColor(img, cv2.COLOR_RGBA2GRAY) # 转灰度图imgBlur cv2.GaussianBlur(imgGray, (5, 5), 1) # 高斯模糊imgCanny cv2.Canny(imgBlur, 60, 60) # Canny算子边缘检测return imgCanny# 读取图像
def match(img_jpg_path, img_png_path):# 读取图像img_jpg cv2.imread(img_jpg_path, cv2.IMREAD_UNCHANGED)img_png cv2.imread(img_png_path, cv2.IMREAD_UNCHANGED)img handel_img(img_jpg)small_img handel_img(img_png)res_TM_CCOEFF_NORMED cv2.matchTemplate(img, small_img, 3)value cv2.minMaxLoc(res_TM_CCOEFF_NORMED)value value[3][0] # 获取到移动距离return valueif __name__ __main__:dd match(./re.png, ./can.png)print(dd)4.3 最后模拟鼠标点击拖动滑块动作完成验证
# 计算要滑动的距离
dd match(./re.png, ./can.png)
print(dd)
sleep(2)
# 拖动滑块
# 找到拖动元素
slider driver.find_element(By.XPATH, (//*[idapp]/div/div[2]/div[3]/div[2]/span[2]))
# 按住按钮
ActionChains(driver).click_and_hold(slider).perform()
sleep(1)
# 滑动距离对应距离
ActionChains(driver).move_by_offset(xoffsetdd, yoffset0).perform()
sleep(3)
# 放开鼠标
ActionChains(driver).release().perform()
4.4 完成输入验证登录进入系统判断是否登录成功
# 判断是否登录成功
getshu driver.find_element(By.XPATH, (//*[idapp]/div/div[3]/div/ul[1]/ul/li[1])).text
# print(getshu)
if getshu Hi欢迎来到lilishop:print(登录成功)
else:print(登录失败)5、完整代码如下
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
import base64
from scripts.sh_login.test001 import match
from selenium.webdriver import ActionChains# 启动浏览器驱动
driver webdriver.Chrome()
# 最大化
driver.maximize_window()
# 输入商城地址
driver.get(https://pc-b2b2c.pickmall.cn/login)
sleep(1)
# 输入用户名和密码
driver.find_element(By.CSS_SELECTOR, ([placeholder用户名])).send_keys(ceshi)
sleep(1)
driver.find_element(By.CSS_SELECTOR, ([placeholder密码])).send_keys(123456)
sleep(1)
# 点击登录按钮
driver.find_element(By.XPATH, (//*[idapp]/div/div[2]/div[2]/div[3]/div[1]/form[1]/div[3]/div/button)).click()sleep(2)
# 滑动滑块
# 获取图片的地址
# sleep(3)
img driver.find_element(By.XPATH, (//*[idapp]/div/div[2]/div[3]/div[1]/img[1]))
img2 driver.find_element(By.XPATH, (//*[idapp]/div/div[2]/div[3]/div[1]/img[2]))s img.get_attribute(src)
s2 img2.get_attribute(src)
# print(type(s))
# print(s)
# 使用split()函数将字符串拆分成多个数字
numbers s.split(,)
numbers2 s2.split(,)
# print(numbers)
# print(type(numbers))
# 获取图片的base64加密数据
djd numbers[1]
djd2 numbers2[1]
# 输出提取出的数字
# print(djd)
# base64解码
lk base64.b64decode(djd)
lk2 base64.b64decode(djd2)
# 获取图片到本地
pic open(re.png, wb)
pic2 open(can.png, wb)
pic.write(lk)
pic2.write(lk2)
pic.close()
pic2.close()# 计算要滑动的距离
dd match(./re.png, ./can.png)
print(dd)
sleep(2)
# 拖动滑块
# 找到拖动元素
slider driver.find_element(By.XPATH, (//*[idapp]/div/div[2]/div[3]/div[2]/span[2]))
# 按住按钮
ActionChains(driver).click_and_hold(slider).perform()
sleep(1)
# 滑动距离对应距离
ActionChains(driver).move_by_offset(xoffsetdd, yoffset0).perform()
sleep(3)
# 放开鼠标
ActionChains(driver).release().perform()
sleep(5)
# 判断是否登录成功
getshu driver.find_element(By.XPATH, (//*[idapp]/div/div[3]/div/ul[1]/ul/li[1])).text
# print(getshu)
if getshu Hi欢迎来到lilishop:print(登录成功)
else:print(登录失败)
# 关闭浏览器
driver.quit()6、完成整个登录过程成功视频如下
最后感谢每一个认真阅读我文章的人看着粉丝一路的上涨和关注礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 软件测试面试文档
我们学习必然是为了找到高薪的工作下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料并且有字节大佬给出了权威的解答刷完这一套面试资料相信大家都能找到满意的工作。