≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
位置:首页 > 网络编程 > Python

pytest批量测试的简单示例

人气:765 时间:2018-10-08

这篇文章主要为大家详细介绍了pytest批量测试的简单示例,具有一定的参考价值,可以用来参考一下。

感兴趣的小伙伴,下面一起跟随四海网的小编罗X来看看吧。
Pytest是python的一个测试模块,可以编写一些简单的测试用例,也可以用来进行一些批量测试,下面简单介绍一下。

1,安装

# 来自www.q1010.com 
$ pip install -U pytest
or
$ easy_install -U pytest
 
$ py.test --version


2,基础语法

# 来自www.q1010.com 
#!/usr/bin/python
import pytest
 
def func(x):
    return x + 1
 
def test_answer():    #测试用例,方法需要以test_开头
    assert func(3) == 5
    
    
运行之

# 来自www.q1010.com 
$ py.test 2.py    #注意需要用py.test命令来运行之


稍微复杂一点儿的写法:

# 来自www.q1010.com 
#!/usr/bin/python
import pytest
 
class TestClass:
 
    def test_one(self):
        x = "this"
        assert "h" in x
 
    def test_two(self):
        x = 3
        assert x > 2

这里总结一下用法,
1,以test_开头的方法,会被py.test自动处理,无需额外调用该方法;
2,使用assert进行判断,assert后面应该是一个boolean类型的,可以是一个判断语句,比如3 > 2,又或者是a in b等等。

3,实际应用
这里有一个实际应用,我想批量检查一批机器上的CPU,内存,和机器上的2个分区,并将CPU大于80%,内存大于95,和分区大于80%的机器找出来,如何实现呢?
假设这里已经提供好了API,可以读取到所有机器上的CPU、内存、分区信息,API地址为http://api/latestMeteris?userCode=xxx&token=xxx&host=’172.20.116.70,172.20.116.72’&service=CPU,Memory,Disk



访问API时返回一串JSON,信息如下:

# 来自www.q1010.com 
{
    "message":"success",
    "result":"success",
    "start":"2017-02-28 13:54:53",
    "data":{
        "Memory":{
            "172.20.116.72":{
                "swap_used":["9.60%"],
                "datetime":["2017-02-28 13:54:41"],
                "merge_time":["2017-02-28 13:54:41"],
                "ram_used":["25.52%"]
            },
            "172.20.116.70":{
                "swap_used":["6.17%"],
                "datetime":["2017-02-28 13:54:41"],
                "merge_time":["2017-02-28 13:54:41"],
                "ram_used":["25.97%"]
            }
        },
        "CPU":{
            "172.20.116.72":{
                "datetime":["2017-02-28 13:54:41"],
                "merge_time":["2017-02-28 13:54:41"],
                "cpu_prct_used":["3.00%"]
            },
            "172.20.116.70":{
                "datetime":["2017-02-28 13:54:41"],
                "merge_time":["2017-02-28 13:54:41"],
                "cpu_prct_used":["1.00%"]
            }
        },
        "Disk":{
            "172.20.116.72":{
                "datetime":["2017-02-28 13:54:41"],
                "merge_time":["2017-02-28 13:54:41"],
                "/export":["25.06%"],
                "/":["21.6%"]
            },
            "172.20.116.70":{
                "datetime":["2017-02-28 13:54:41"],
                "merge_time":["2017-02-28 13:54:41"],
                "/export":["44.68%"],
                "/":["36.15%"]
            }
        }
    },
    "host_size":2,
    "end":"2017-02-28 13:54:53"
}



pytest脚本写法如下:

# 来自www.q1010.com 
#!/usr/bin/python
 
import os
import sys
import json
import urllib
import urllib2
import pytest
 
iplist = ["172.20.116.70", "172.20.116.72"]    #定义IP列表
ips = ','.join(iplist)
 
url = 'http://api/latestMeteris?userCode=xxx&token=xxx&host=' + ips + '&service=CPU,Memory,Disk'
req = urllib.urlopen(url)
result = req.read()   #get a string type
 
a = json.loads(result)  #transfer string type to dict type
 
@pytest.mark.parametrize('ip', iplist)
def test_cpu(ip):
    value = a["data"]["CPU"][ip]["cpu_prct_used"][0]
    assert float(value.strip("%")) < 80
 
@pytest.mark.parametrize('ip', iplist)
def test_memory(ip):
    value = a["data"]["Memory"][ip]["ram_used"][0]
    assert float(value.strip("%")) < 95
 
@pytest.mark.parametrize('ip', iplist)
def test_disk(ip):
    value_root = a["data"]["Disk"][ip]['/'][0]
    value_export = a["data"]["Disk"][ip]['/export'][0]
    assert float(value_root.strip("%")) < 80 and float(value_export.strip("%")) < 80
    
    
运行脚本试一下

# 来自www.q1010.com 
$ py.test 2.py 
========================= test session starts =========================
platform linux2 -- Python 2.7.4, pytest-3.0.6, py-1.4.31, pluggy-0.4.0
rootdir: /home/zhukun/0224, inifile: 
collected 6 items 
 
2.py ......
 
====================== 6 passed in 0.05 seconds ======================

意为6个测试全部通过。

本文来自:http://www.q1010.com/181/2149-0.html

注:关于pytest批量测试的简单示例的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。

关键词:测试

您可能感兴趣的文章

  • JS测试string是否包含有匹配结果,包含返回true,不包含返回false。
  • php查找数组是否存在某个元素的方法性能测试
  • php测试密码的强度,最高强度为100功能实例
  • php 调用KyotoTycoon测试的简单示例
上一篇:Python读取配置文件模块ConfigParser功能实例
下一篇:Python轻松转换列表与字符串的简单示例
热门文章
  • Python 处理Cookie的菜鸟教程(一)Cookie库
  • python之pandas取dataframe特定行列的简单示例
  • Python解决json.dumps错误::‘utf8’ codec can‘t decode byte
  • Python通过pythony连接Hive执行Hql的脚本
  • Python 三种方法删除列表中重复元素的简单示例
  • python爬虫代码示例
  • Python 中英文标点转换示例
  • Python 不得不知的开源项目解析
  • Python urlencode编码和url拼接实现方法
  • python按中文拆分中英文混合字符串的简单示例
  • 最新文章
    • Python利用numpy三层神经网络的简单示例
    • pygame可视化幸运大转盘的简单示例
    • Python爬虫之爬取二手房信息的简单示例
    • Python之time库的简单示例
    • OpenCV灰度、高斯模糊、边缘检测的简单示例
    • Python安装Bs4及使用的简单示例
    • django自定义manage.py管理命令的简单示例
    • Python之matplotlib 向任意位置添加一个子图(axes)的简单示例
    • Python图像标签标注软件labelme分析的简单示例
    • python调用摄像头并拍照发邮箱的简单示例

四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。