• python测试相关库学习


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

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

    如果各位在平时工作中,发现了好用的Python库,也请留言注明,我好补充。

    基本库:

    sys 程序和Python解析器的交互

    os 启动新进程;操作文件和目录

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

    string 基本字符串操作

    inspect 提供自省和反射功能

    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. uWSGI
        uWSGI这个是一个web服务器,它实现了WSGI协议、uwsgi、http等协议,我们在Python日常部署文章提到过,主要通过Nginx + uWSGI 拉动我们应用服务(比如Django)提高服务吞吐量。

     

  • 相关阅读:
    jmeter BeanShell内置变量的基本使用
    自定义 resetCSS
    JavaScript + html 制作钟表
    JavaScript 实现放大镜效果
    JavaScript 实现拖拽
    JavaScript 阻止事件的默认行为
    JavaScript 事件冒泡
    JavaScript 鼠标事件、键盘事件
    JavaScript window.location
    JavaScript 中document.getElementsByClassName() 在ie8以下不兼容问题
  • 原文地址:https://www.cnblogs.com/highpointengineer/p/10979272.html
Copyright © 2020-2023  润新知