python测试相关库学习

今天花了一些时间,过了一下这几年本身用Python开发的自动化测试框架,而后将其中经常使用到Python库抽出来,简单整理了一下它们的用处。我以为,只要掌握了这些经常使用的Python库,足以应对大多数自动化测试框架和工具的开发工做。前端

为了从若干源代码文件中找出这些被引用的Python库,还专门写了一个小工具来查找它们,该工具已经上传到github,地址是:import_search.pypython

若是各位在平时工做中,发现了好用的Python库,也请留言注明,我好补充。git

基本库:github

sys 程序和Python解析器的交互web

os 启动新进程;操做文件和目录正则表达式

re 正则表达式,字符串匹配redis

string 基本字符串操做sql

inspect 提供自省和反射功能mongodb

importlib 支持动态导入数据库

bitstring二进制数据处理

zipfile 压缩解压文件

tarfile 压缩解压文件

random 随机数,几率

uuid 生成惟一码

defaultdict 带默认值的字典

fcntl 操做文件描述符

signal 信号处理

threading 线程库,构建并发应用

psutil 系统性能参数

命令行,读取配置:

optparse 处理命令行选项

glob 文件路径查找

yaml 访问yaml数据文件

ConfigParser 读取配置文件

xml XML

pickle 序列化

json 序列化

网络请求相关:

libxml2 XML解析器

urlparse URL解析

urllib 访问URL资源

urllib2 访问URL资源

cookielib http客户端的cookie处理

requests 神器,用于发送网络请求,经常使用于接口测试

httplib http请求客户端

BeautifulSoup HTMLXML文件中提取数据的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 制做图表

 

你必须知道的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. uWSGIuWSGI这个是一个web服务器,它实现了WSGI协议、uwsgi、http等协议,咱们在Python平常部署文章提到过,主要经过Nginx + uWSGI 拉动咱们应用服务(好比Django)提升服务吞吐量。
相关文章
相关标签/搜索