案例故事: 在测试环境搭建环节,尤其是需要在新的电脑上搭建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
也可关注“武散人”微信订阅号 ,随时接受文章推送。

文章来源于网络,如有侵权请联系站长QQ61910465删除
本文版权归去快排Seo www.SEOgurublog.com 所有,如有转发请注明来出,竞价开户托管,seo优化请联系QQ▷61910465