首页 > 其他 > 详细

Pytest的简单应用

时间:2020-11-24 19:03:27      阅读:52      评论:0      收藏:0      [点我收藏+]
Pytest的简单应用

技术分享图片
技术分享图片


关注测试君 | 会上瘾

一、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天,我就没有回复权限了。所以,我要公布自己的微信号了,欢迎大家来埋伏我
技术分享图片
技术分享图片

Pytest的简单应用

原文:https://blog.51cto.com/15009374/2553899

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!