pytest+selenium+allure Webui自动化简易框架(续)

本文介绍了如何使用pytest、selenium和allureWebui构建一个简易自动化测试框架,重点讲解了如何实现自动检测并更新Chromedriver的方法。通过Check_Driver类,对比系统内版本与最新版本,确保测试环境的驱动保持最新状态。
摘要由CSDN通过智能技术生成

介绍

简易自动化框架。

软件架构

pytest5.4.2
selenium
3.141.0
allure_python_commons2.8.29
PyYAML
5.4.1
python==3.6.0

依赖安装

使用 pip install -r requirements.txt

新增一个自动更下载chromedriver的方法

结构如下:
Check_driver 查询已安装driver的版本
在这里插入图片描述

代码说明
import requests
import re
import os

from Update_driver.Download import Download_dev


class Check_Driver(Download_dev):

    def query_driver_version(self,url):
        '''查询最新的Chromedriver版本'''
        rep = requests.get(url).text
        time_list = []  # 用来存放版本时间
        time_version_dict = {}  # 用来存放版本与时间对应关系
        result = re.compile(r'\d.*?/</a>.*?Z').findall(rep)  # 匹配文件夹(版本号)和时间
        for i in result:
            time = i[-24:-1]  # 提取时间
            version = re.compile(r'.*?/').findall(i)[0]  # 提取版本号
            time_version_dict[time] = version  # 构建时间和版本号的对应关系,形成字典
            time_list.append(time)  # 形成时间列表
        latest_version = time_version_dict[max(time_list)][:-1]  # 用最大(新)时间去字典中获取最新的版本号
        return latest_version


    def query_system_driver_version(self):
        '''查询系统内的Chromedriver版本'''
        system_version = os.popen('chromedriver --version').read()
        return system_version.split(' ')[1]

    def get_path(self):
        '''查询系统内Chromedriver的存放路径,由于mac不能使用指定bash,只能写死路径,有好的解决方案请赐教'''
        system_path = '/usr/local/bin/'
        # system_path = os.popen('where chromedriver').read()  # windows 可以使用这个方法
        return system_path


    @staticmethod
    def Run_download_driver():
        url = 'http://npm.taobao.org/mirrors/chromedriver/'
        dev = Check_Driver()
        latest_version = dev.query_driver_version(url)
        print('最新的chromedriver版本为:', latest_version)
        version = dev.query_system_driver_version()
        print('当前系统内的Chromedriver版本为:', version)
        if version == latest_version:
            print('当前系统内的Chromedriver已经是最新的')
        else:
            print('当前系统内的Chromedriver不是最新的,需要进行更新')
            download_url = url + latest_version + '/chromedriver_mac64.zip'  # 拼接下载链接,更换下载对应系统的driver名称即可
            dev.download_driver(download_url)
            path = dev.get_path()
            print('替换路径为:', path)
            dev.unzip_driver(path)
            print('更新后的Chromedriver版本为:', dev.query_system_driver_version())

Download 下载chromedriver镜像

import requests
import zipfile


class Download_dev():

    def download_driver(self, download_url):
        '''下载文件'''
        file = requests.get(download_url)
        with open("chromedriver.zip", 'wb') as zip_file:  # 保存文件到脚本所在目录
            zip_file.write(file.content)
            print('下载成功')


    def unzip_driver(self,path):
        '''解压Chromedriver压缩包到指定目录'''
        f = zipfile.ZipFile("chromedriver.zip", 'r')
        for file in f.namelist():
            f.extract(file, path)

run 增加调用,不用可注释

from test_run import run_test
from Update_driver import Check_driver

#入口文件
class startest(run_test.RunTest,Check_driver.Check_Driver):
    import time
    test_data = time

# class sterdown(Check_driver.Check_Driver):



if __name__ == '__main__':
    startest.Run_download_driver()#检测chromedriver版本,不需要注释即可
    startest.run_alltest()
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值