• 《自拍教程76》Python 一键批量安装第三方包


    案例故事: 在测试环境搭建环节,尤其是需要在新的电脑上搭建Python测试环境时,
    可以考虑把日常自动化测试所需要用到的第三方Python包(非自带内置包), 一次性批量安装上。


    准备阶段
    1. 确保python及pip已经添加到了Path环境变量
    2. 可以利用os.system("具体命令")函数来实现批量安装
    3. 自动化测试人员,常用的第三方包如下表:
    第三方包名 应用场景
    requests 接口测试,文件下载,http访问
    httprunner 自动化测试框架,更适合接口
    selenium Web UI自动化
    openpyxl Excel读写操作
    robotframework 自动化框架,更适合移动终端或web UI自动化
    appium-python-client App UI自动化
    uiautomator2 Android App UI 自动化
    locust Web 性能测试工具
    flask Web框架,搭建测试环境用
    django Web框架,搭建测试环境用
    pillow 图片处理
    pandas 数据分析
    keyboard 键盘事件
    python-jenkins Jenkins构建任务自动化
    pyinstaller Py脚本编译成二进制可执行文件
    python_docx Word读写操作
    plotly 制图工具
    pyserial 串口设备通讯
    pymysql 数据库处理
    MySQLdb 数据库处理
    mongodb 数据库处理
    redis 数据库处理

    Bat vs Python批处理脚本形式

    Dos Bat批处理脚本(.bat文件)是最简单Windows自带的批量处理脚本语言,
    记住批处理脚本的精髓:批量顺序执行语句,Python一样可以实现,
    以下是DOS bat批处理脚本:

    pip install requests
    pip install httprunner
    pip install selenium
    pip install openpyxl
    pip install robotframework
    pip install appium-python-client
    pip install uiautomator2
    pip install locust
    pip install flask
    pip install django
    pip install pillow
    pip install pandas
    pip install keyboard
    pip install python-jenkins
    pip install pyinstaller
    pip install python_docx
    pip install plotly
    pip install pyserial
    pip install pymysql
    pip install MySQLdb
    pip install mongodb
    pip install redis
    pause
    

    以下是对应的Python批处理脚本形式:

    import os
    
    os.system("pip install requests")
    os.system("pip install httprunner")
    os.system("pip install selenium")
    os.system("pip install openpyxl")
    os.system("pip install robotframework")
    os.system("pip install appium-python-client")
    os.system("pip install uiautomator2")
    os.system("pip install locust")
    os.system("pip install flask")
    os.system("pip install django")
    os.system("pip install pillow")
    os.system("pip install pandas")
    os.system("pip install keyboard")
    os.system("pip install python-jenkins")
    os.system("pip install pyinstaller")
    os.system("pip install python_docx")
    os.system("pip install plotly")
    os.system("pip install pyserial")
    os.system("pip install pymysql")
    os.system("pip install MySQLdb")
    os.system("pip install mongodb")
    os.system("pip install redis")
    os.system("pause") # 暂停并查看执行结果避免直接关闭
    

    $$$
    咋一看,是Dos bat批处理脚本更为简单直接,但是bat语法太过简单,只能处理简单的数据,
    在稍大点的程序处理过程中,bat显得很吃力且不科学,还是Python更为合理!


    Python面向过程函数形式

    其实本案例Python批处理脚本形式实现即可,以下只是用于编程思维训练,
    找到可以封装成一个函数块的小代码块儿, 用函数封装起来,
    函数的命名一般建议用"动词", 所以我们命名为: "install_3rd_package",
    封装好后, install_3rd_package()函数调用即可,
    备注:3rd就是第三方的意思,third party的简写。

    # coding=utf-8
    
    import os
    
    
    def install_3rd_package():  # 定义功能函数
        os.system("pip install requests")
        os.system("pip install httprunner")
        os.system("pip install selenium")
        os.system("pip install openpyxl")
        os.system("pip install robotframework")
        os.system("pip install appium-python-client")
        os.system("pip install uiautomator2")
        os.system("pip install locust")
        os.system("pip install flask")
        os.system("pip install django")
        os.system("pip install pillow")
        os.system("pip install pandas")
        os.system("pip install keyboard")
        os.system("pip install python-jenkins")
        os.system("pip install pyinstaller")
        os.system("pip install python_docx")
        os.system("pip install plotly")
        os.system("pip install pyserial")
        os.system("pip install pymysql")
        os.system("pip install MySQLdb")
        os.system("pip install mongodb")
        os.system("pip install redis")
    
    
    install_3rd_package()  # 调用功能函数
    os.system("pause")  # 暂停并查看执行结果避免直接关闭
    

    Python面向对象类形式

    其实本案例Python批处理脚本形式实现即可,以下只是用于编程思维训练,

    1. 以"一切皆可归类"的思想, 先抽象化出一个类来,
      类名一般建议用"名词", 所以我们命名为"PackageInstaller",
      代表包安装器, 且一般要驼峰式(首字母大写)来规范类的命名.
    2. 养成良好的类的初始化(init)的习惯,
      初始化过程中, 可以pass(什么都不做)
    3. 这个PackageInstaller类, 目前需要一个截屏的函数(动作功能)就足够了,
      函数的命名一般建议用"动词", 所以我们命名为: "install_package"这个各单元函数,
      再定义一个批量函数"install_3rd_package",
    4. 类是一个抽象的事物, 必须实例化成具体的对象后,
      才能进行调用, 所以我们实例化并命名成了m_obj, 表明是一个对象。
    5. 实例化成具体对象后, 对象就可以调用install_3rd_package这个函数了。
    # coding=utf-8
    
    import os
    
    class PackageInstaller(object):
        def __init__(self):
            pass
    
        def install_package(self, package_name):
            os.system("pip install %s" % package_name)
    
        def install_3rd_package(self):
            self.install_package("requests")
            self.install_package("httprunner")
            self.install_package("selenium")
            self.install_package("openpyxl")
            self.install_package("robotframework")
            self.install_package("appium-python-client")
            self.install_package("uiautomator2")
            self.install_package("flask")
            self.install_package("django")
            self.install_package("locust")
            self.install_package("pillow")
            self.install_package("pandas")
            self.install_package("keyboard")
            self.install_package("python-jenkins")
            self.install_package("pyinstaller")
            self.install_package("python_docx")
            self.install_package("plotly")
            self.install_package("pyserial")
            self.install_package("pymysql")
            self.install_package("MySQLdb")
            self.install_package("mongodb")
            self.install_package("redis")
    
    if __name__ == '__main__':
        m_obj = PackageInstaller() # 实例化一个对象
        m_obj.install_3rd_package() # 该对象调用install_3rd_package函数
        os.system("pause") # 暂停并查看执行结果避免直接关闭
    

    运行方式与效果

    以上代码的3种实现形式都可以直接运行,比如保存为install_3rd_package.py并放在桌面,
    建议python install_3rd_package.py运行,当然也可以双击运行。

    小提示: 日常工作中,我们会碰到很多很多的比如开发人员,项目经理及其他测试同仁等给到.bat的批处理脚本,不妨把他们转成Python脚本,有利于将Python运用并解决实际测试工作中遇到的问题,Python脚本也更有利于维护、扩展、及移植(到Linux系统环境)。


    更多更好的原创文章,请访问官方网站:www.zipython.com
    自拍教程(自动化测试Python教程,武散人编著)
    原文链接:https://www.zipython.com/#/detail?id=e5517f7c823c4092bb4ce668bb51c98a
    也可关注“武散人”微信订阅号,随时接受文章推送。

  • 相关阅读:
    flink-cdc读取postgres报异常,没有发布表
    yum 安装高版本Git
    分布式存储FastDFS搭建
    ElasticSearch6.5.1集群部署
    CentOS7 OpenSSH编译安装升级
    K8S使用ceph实现持久化存储
    ceph分布式集群的搭建
    canal服务搭建
    MySQL-5.7.31的搭建
    基于CentOS7.6使用KubeOperator安装Kubernetes集群
  • 原文地址:https://www.cnblogs.com/zipython/p/13392199.html
Copyright © 2020-2023  润新知