案例故事: 在测试环境搭建环节,尤其是需要在新的电脑上搭建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 httprunnerpip install seleniumpip install openpyxlpip install robotframeworkpip install appium-python-clientpip install uiautomator2pip install locustpip install flaskpip install djangopip install pillowpip install pandaspip install keyboardpip install python-jenkinspip install pyinstallerpip install python_docxpip install plotlypip install pyserialpip install pymysqlpip install MySQLdbpip install mongodbpip install redispause以下是对应的Python批处理脚本形式:
import osos.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-8import osdef 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-8import osclass 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[1] 自拍教程(自动化测试Python教程,武散人编著)
原文链接:https://www.zipython.com/#/detail?id=e5517f7c823c4092bb4ce668bb51c98a 也可关注“武散人”微信订阅号,随时接受文章推送。
Python批量安装第三方包实战
本文介绍了如何使用Python批量安装第三方Python包,包括面向过程和面向对象两种方式,并对比了与批处理脚本的区别。通过实例展示了如何创建安装函数和类,强调Python脚本在维护和移植上的优势。
1804

被折叠的 条评论
为什么被折叠?



