▼
关注测试君 | 会上瘾
一、Pytest介绍
Pytest是基于python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高。
1、特性:
非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考 能够支持简单的单元测试和复杂的功能测试 支持参数化 执行测试过程中可以将某些测试跳过,或者对某些预期失败的case标记成失败 支持重复执行失败的case 支持运行由nose, unittest编写的测试case 具有很多第三方插件,并且可以自定义扩展方便的和持续集成工具集成
2、常用拓展
pytest-selenium(集成selenium) pytest-html(生成html格式的测试报告) pytest-rerunfailures(失败case重复执行) pytest-xdist(多CPU分发)
二、Pytest安装
1、在IDE中安装(这里以PyCharm为例)
2、使用命令进行安装
pip install -U pytest pip install -
U pytest-htmlpip install -U pytest-rerunfailures
3、验证安装结果
三、Pytest实例
运行实例 运行原则:在不指定运行目录,运行文件,运行函数等参数的默认情况下,pytest会执行当前目录下的所有以test为前缀(test.py)或以_test为后缀(test.py)的文件中以test为前缀的函数 pytest会找当前以及递归查找子文件夹下面所有的test.py或test.py的文件,把其当作测试文件 在这些文件里,pytest会收集下面的一些函数或方法,当作测试用例 不在类定义中的以test开头的函数或方法 在以Test开头的类中(不能包含init方法),以test开头的方法 ①新建一个python文件:test_shili01
deffunc(x):
return x + 1
def test_func1():
assertfunc(4) == 5
# 成功示例
deftest_func2():
assert func(3) == 5
# 失败示例
②运行,右键选择“Run py.test”
③运行结果:会给出成功和失败的提示,失败提示,会给出用例失败描述,包括执行失败的位置和原因,便于查找和定位 test_func2()运行失败的原因就是不符合我们设定的断言(4 == 5)
四、Pytest生成HTML测试报告
1、调用pytest.main(),来组织要执行的用例 2、通过设定参数,来指定测试报告的格式,文件名,路径(默认为测试脚本所在目录) 3、运行pytest01.py 程序会自动执行testpytest01.py testpytest01.py test_pytest01.py 中的测试类和测试函数 并将测试执行的结果,写入指定的测试报告中
4、生成测试报告
包含成功和失败的测试用例执行结果,默认全部展示 成功用例:输出测试函数的指定输出内容 失败用例:输出异常以及错误信息
五、Pytest邮件发送测试报告
1、执行完测试用例,生成测试报告之后,可以通过邮件的方式,将测试报告发送通知相关人员 2、HTML格式的测试报告,可以作为邮件的正文放在邮件当中(可能会有部分格式的丢失) 3、测试报告,也可以作为附件的方式放在邮件中(格式不会受到影响,但是阅读不太方便) 4、python3 发送HTML内容的邮件源码
importsmtplib
from email.mime.
text
importMIMEText
fromemail.
header import
Header
sender =
‘XXX@163.com‘receiver =
‘XXX@qq.com‘smtpserver =
‘smtp.163.com‘
username =‘XXX‘password =‘XXX‘
# 邮件主题mail_title =
‘主题:测试报告3‘
# 读取html文件内容
f = open(‘report_test.html‘,‘rb‘)
mail_body = f.read()f.close()
# 邮件内容, 格式, 编码
message =MIMEText(mail_body,‘html‘,‘utf-8‘)
message[‘From‘]= sender
messag[‘To‘] = receiver
message[‘Subject‘] =
Header(mail_title, ‘utf-8‘)try: smtp =
smtplib.SMTP()
smtp.connect(
‘smtp.163.com‘)
smtp.login(username,
password) smtp.sendmail(
sender, receiver, message.as_string()) print(
"发送邮件成功!!!") smtp.quit()exceptsmtplib
.
SMTPException: print("发送邮件失败!!!")
原文链接:
https://blog.csdn.net/u013250071/article/details/79583438
一篇文章从了解到入门shell
postman请求数据库方法(Omysql)
软件测试工程师在上海的求职经历
还有一件重要的事情要和大家说,我不是经常看公众号后台,所以有时候大家在后台发留言,时间一旦超过2天,我就没有回复权限了。所以,我要公布自己的微信号了,欢迎大家来埋伏我
原文:https://blog.51cto.com/15009374/2553899