python:单元测试框架pytest的一个简单例子

之前一般做自动化测试用的是unitest框架,发现pytest同样不错,写一个例子感受一下

test_sample.py

import cx_Oracle
import config
from send_message import send_message
from insert_cainiao_oracle import insert_cainiao_oracle


def test_cainiao_monitor():
    """
    查询数据库信息对比数据是否满足要求,如不满足则发送短信通知,并写入数据库。
    :return:
    """
    sql = "select COUNT(*) from AVGINDEX t WHERE t.STATDATE = '2019-09-11'"

    conn = cx_Oracle.connect(config.name, config.password, config.host_port_sid)
    cursor = conn.cursor()
    cursor.execute(sql)
    data = cursor.fetchall()
    print(data)
    print(data[0][0])
    conn.commit()
    cursor.close()  # 关闭游标
    conn.close()  # 关闭数据库连接

    try:
        assert data[0][0] == 18
    # 如断言失败,则会抛出AssertionError异常,将此异常捕获,继续执行下面的发送短信和插入数据库操作,
    # 如果不捕获则断言失败后不继续执行下方代码
    except AssertionError as e:
        print('断言失败了')
        print(e)
        content = '查询结果为%s条,不等于18条!' % data[0][0]
        # 发短信方法
        send_message(content, [18*********])
        # 信息入库方法
        insert_cainiao_oracle(1, content)

执行命令:

pytest test_sample.py --html=report.html

执行test_sample.py这个文件中的所有测试函数,并将执行结果输出到report.html报告中

 

原文地址:https://www.cnblogs.com/gcgc/p/11512733.html