Pytest自动化测试框架实战(四)【最终章】

Pytest自动化测试框架实战(四)【最终章】

断更好久了,最近比较忙一直没时间更新,突然发现好多人关注我私信我要我继续更新,那么我就继续抽空更新。

之前我们写到了编写测试用例那么接下来我们应该执行测试用例了。

执行用例

我们进入到当前项目的主目录执行命令:

pytest

命令行输出:

Test session starts (platform: win32, Python 3.7.7, pytest 5.3.2, pytest-sugar 0.9.2)
cachedir: .pytest_cache
metadata: {'Python': '3.7.7', 'Platform': 'Windows-10-10.0.18362-SP0', 'Packages': {'pytest': '5.3.2', 'py': '1.8.0', 'pluggy': '0.13.1'}, 'Plugins': {'forked': '1.1.3', 'html': '2.0.1', 'metadata': '1.8.0', 'ordering': '0.6', 'rerunfailures': '8.0', 'sugar': '0.9.2', 'xdist': '1.31.0'}, 'JAVA_HOME': 'D:\\Program Files\\Java\\jdk1.8.0_131'}
rootdir: C:\Users\hoou\PycharmProjects\web-demotest, inifile: pytest.ini
plugins: forked-1.1.3, html-2.0.1, metadata-1.8.0, ordering-0.6, rerunfailures-8.0, sugar-0.9.2, xdist-1.31.0
collecting ... 
DevTools listening on ws://127.0.0.1:10351/devtools/browser/78bef34d-b94c-4087-b724-34fb6b2ef6d1
 TestCase\test_search.py::TestSearch.test_001 ✓                                                                                              50% █████     
 TestCase\test_search.py::TestSearch.test_002 ✓                                                                                             100% ██████████
------------------------------- generated html file: file://C:\Users\hoou\PycharmProjects\web-demotest\report\report.html -------------------------------- 
Results (12.90s):
       2 passed

可以看到两条用例已经执行成功了。

项目的report目录中生成了一个report.html文件。

这就是生成的测试报告文件。

发送邮件

当项目执行完成之后,需要发送到自己或者其他人邮箱里查看结果。

我们编写发送邮件的模块。

utils 目录中新建 send_mail.py 文件:

"""
!/usr/bin/env python
-- coding:utf-8 --
@Author : "xiaohua"
@Email:"924179146@qq.com"
@createtime : 2022/3/3 8:37
@File    : 00邮件.py
@Software: PyCharm
import zmail
from config.conf import cm
def send_report():
    """发送报告"""
    with open(cm.REPORT_FILE, encoding='utf-8') as f:
        content_html = f.read()
        mail = {
            'from': '924179146@qq.com',
            'subject': '测试报告邮件',
            'content_html': content_html,
            'attachments': [cm.REPORT_FILE, ]
        server = zmail.server(*cm.EMAIL_INFO.values())
        server.send_mail(cm.ADDRESSEE, mail)
        print("测试邮件发送成功!")
    except Exception as e: