Python自动化测试常用库整理

参考:https://www.jianshu.com/p/b45d240eabac
今天花了一些时间,过了一下这几年自己用Python开发的自动化测试框架,然后将其中常用到Python库抽出来,简单整理了一下它们的用处。我觉得,只要掌握了这些常用的Python库,足以应对大多数自动化测试框架和工具的开发工作。为了从若干源代码文件中找出这些被引用的Python库,还专门写了一个小工具来查找它们,该工具已经上传到github,地址是:import_search.py如果各位在平时工作中,发现了好用的Python库,也请留言注明,我好补充。

基本库:

sys 程序和Python解析器的交互 https://blog.csdn.net/zyc_love_study/article/details/78983817
os 启动新进程;操作文件和目录 https://www.cnblogs.com/yufeihlf/p/6179547.html
re 正则表达式,字符串匹配 https://www.cnblogs.com/MrFiona/p/5954084.html
string 基本字符串操作
https://www.cnblogs.com/PeterZhang1520389703/p/7647160.html
inspect 提供自省和反射功能
https://www.cnblogs.com/linxiyue/p/7989947.html
importlib 支持动态导入 http://www.cnblogs.com/zhbzz2007/p/6715516.html
bitstring二进制数据处理 https://blog.csdn.net/zcl369369/article/details/22327029
zipfile 压缩解压文件 https://www.cnblogs.com/sun-haiyu/p/7082063.html
tarfile 压缩解压文件 https://www.cnblogs.com/chenjianhong/p/4144441.html
random 随机数,概率 https://www.cnblogs.com/duking1991/p/6121300.html
uuid 生成唯一码 https://www.cnblogs.com/gaoya666/p/9142124.html
defaultdict 带默认值的字典 https://www.cnblogs.com/duyang/p/5065418.html
fcntl 操作文件描述符 https://blog.csdn.net/lucyxu107/article/details/82837282
signal 信号处理 https://www.cnblogs.com/madsnotes/articles/5688681.html
threading 线程库,构建并发应用 https://www.cnblogs.com/chengd/articles/7770898.html
https://www.cnblogs.com/tkqasn/p/5700281.html
psutil 系统性能参数 https://www.cnblogs.com/jason007/p/6748057.html

命令行,读取配置:

optparse 处理命令行选项 https://blog.csdn.net/m0_37717595/article/details/80603884
glob 文件路径查找 https://blog.csdn.net/u010472607/article/details/76857493/
yaml 访问yaml数据文件 https://blog.csdn.net/yongwan5637/article/details/80338422
ConfigParser 读取配置文件 https://blog.csdn.net/shortwall/article/details/78615368
xml XML库 https://www.cnblogs.com/AlwinXu/p/5483177.html
pickle 序列化 https://www.cnblogs.com/lincappu/p/8296078.html
json 序列化 https://www.cnblogs.com/tjuyuan/p/6795860.html

网络请求相关:
libxml2 XML解析器
urlparse URL解析
urllib 访问URL资源
urllib2 访问URL资源
cookielib http客户端的cookie处理
requests 神器,用于发送网络请求,常用于接口测试
httplib http请求客户端
BeautifulSoup 从HTML或XML文件中提取数据的Python库

网络数据包:

scapy 网络嗅探工具包
dpkt 网络数据报解析
pcapy 解析pcap文件
socket TCP,UDP数据协议
struct 将python基本类型值与用python字符串格式表示的C struct类型间的转化,主要用于网络数据传输

测试系统构建:

flask 构建web应用,构建HTTP接口
tornado 构建web应用,构建HTTP接口
BaseHTTPServer 简单HTTP服务器
appium App自动化测试工具
selenium 大名鼎鼎的web自动化测试工具
behave BDD自动化测试框(通用自动化测试框架)
unittest Python内置自动化测试框架(通用自动化测试框架)
logging 日志库
traceback 调试信息
nanotime 纳秒级的时间
time 时间访问和转换函数
datetime 日期和时间
jenkinsapi 访问jenkins

分布式系统构建:

xmlrpclib 基于xml的远程RPC库
fabric 利用ssh高效部署和管理系统的工具,用于远程执行命令和部署文件paramiko 遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。用于远程执行命令和部署文件

大数据和数据库相关:

avro avro是一个数据序列化系统
etcd etcd访问库
pyspark spark库
hdfs hdfs库
pyhive hive库
redis 访问redis数据库
rediscluster 访问redis集群
pymongo 访问mongodb
kafka 访问kafka
pykafka 访问kafka
sqlalchemy ORM库
MySQLdb 访问MySQL数据库

结果展示:

smtplib 负责发送邮件
email 负责构造邮件
numpy 数据处理
math 顾名思义
matplotlib 数据绘图包
pylab 绘制二维,三维数据
pychart 制作图表
lambda函数 可以接收任意多个参数 (包括可选参数) 并且返回单个表达式的值
https://www.cnblogs.com/kaishirenshi/p/8611358.html

你必须知道的10个Python第三库

  1. BeautifulSoup
      Beautiful Soup是一个可以从HTML,XML进行提取文件的Python库,日常我们使用爬虫进行数据抓取回来之后,往往需要进行数据解析。
      使用它能让你开心愉快提取里面的爬回来的数据。
      2. Arrow
      用过datetime标准库的同学都知道,这个库每次需要import各种时间模块格式化,非常不友好,arrow直接接受各种时间(datetime,date,timestamp)类型转化为Arrow类型,然后进行各种格式化操作,非常方便。很是人性化,简直是居家旅行必备良药
      3. Requests
      题图就是requests的logo,这个库使用量之大,Python开发者应该是无人不知无人不晓。
      requests是日常网络库使用最频繁的一个,不管是用于正式还是测试,它完全满足与日常网络的需求,非常人性化,简单好用。
      requests目前在github有36+的star,除了功能强大,源码也是写的非常赞。五星推荐
      4. Fabric
      对于少量服务器,日常自动化发布配置,与服务器交互只需要配置一个fabfile.py的自动化脚本就行,非常简单方便。如果需要更多配置运维可以使用ansible,这个后期我单独和大家讨论。
      5. Statsd
      作为一枚开发同学,服务器API性能,耗时监控是一个很重要的数据,我们需要收集起来进行实时分析。
      statsd是一个网络守护进程,通过Python客户端,我们可以统计监听API数据发送到服务端,比如ES,influxdb,promethues,并且用Grafana进行数据展示。
      6. Gevent
      gevent是基于协程的Python网络库,通过gevent使的协程的使用变得非常简单,遇到阻塞你不需要显示切换,程序会进行自动调度。使用非常广泛,在部署flask,celery往往会加入gevent提高服务性能。
      7. Supervisor
      之前文章提到过supervisor可以大大方便我们进行进程管理,开始,重启,停止,查看日志等等。
      8. Voluptuous
      这个库估计很多同学不知道,主要是日常写API的时候进行数据校验,当前端API传递参数过多的时候,这个库,可以通过装饰器的方式提前进行校验数据逻辑,大大降低了你在代码逻辑校验数据的耦合,强烈推荐后端的同学使用。
      9. Raven
      单纯这个名字大家可能不那么敏感,但是sentry大家肯定就知道了。
      这个库就是sentry服务的SDK包。对于日常邮件报警我们通过安装了这个包配合sentry后端服务,就能够进行各种邮件报警的错误收集。
      另外通过设置日志等级,我们能轻松通过logger进行触发报警。
      这个包适合多个语言,不仅仅是Python语言之下。
      10. uWSGI
      uWSGI这个是一个web服务器,它实现了WSGI协议、uwsgi、http等协议,我们在Python日常部署文章提到过,主要通过Nginx + uWSGI 拉动我们应用服务(比如Django)提高服务吞吐量。

你可能感兴趣的:(python自动化测试库)