欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-11 23:00:25
案例故事: 在测试环境搭建环节,尤其是需要在新的电脑上搭建Python测试环境时,可以考虑把日常自动化测试所需要用到的第三方Python模块(非自带内置模块), 一次性批量安装上。准备阶段确保python及pip已经添加到了PATH环境变量可以利用os.system(“具体命令”)函数来实现批量安装自动化测试人员,常用的第三方模块如下表:第三方模块名应用场景requests接口测试,文件下载,http访问httprunner自动化测试框架,更适合接口....

案例故事: 在测试环境搭建环节,尤其是需要在新的电脑上搭建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
也可关注“武散人”微信订阅号,随时接受文章推送。
《自拍教程76》Python 一键批量安装第三方包

本文地址:https://blog.csdn.net/qq_45572661/article/details/107638770