python的pytest框架之命令行参数详解(上)


Posted in Python onJune 27, 2019

前言

pytest是一款强大的python自动化测试工具,可以胜任各种类型或者级别的软件测试工作。pytest提供了丰富的功能,包括assert重写,第三方插件,以及其他测试工具无法比拟的fixture模型。pytest是一个软件测试框架,是一款命令行工具,可以自动找到测试用例执行,并且回报测试结果。有丰富的基础库,可以大幅度提高用户编写测试用例的效率。具备扩展性,用户可以自己编写插件,或者安装第三方提供的插件。可以很容易地与其他工具集成到一起使用。比如持续集成,web自动化测试等。

下面列举了一些pytest相对于其他框架的优点

1. 简单的测试可以很简单的编写

2. 复杂的测试也可以简单的编写

3. 测试的可读性

4.易于上手

5. 断言仅使用原生的assert关键字,而不是像unittest那样使用self.assert**那样

6. pytest可以运行unittest和nose编写的测试用例

上面大部分结论其实也不是我个人总结的,是我从一本书上看到的,因为我也是刚刚接触这个框架,了解的也并不多。还有一个重要原因就是写文章不写点所谓的科学理论好像缺少点啥……(别管了前面了*总之一句话:pytest就是一个测试框架和unittest一类,功能很强,支持好多插件,用例写起来简单,代码逻辑性强,值得学习!实际工作中能不能用,能不能用好那就要靠自己了!)^_^废话不多说!

编写第一个测试函数(用例)

from selenium import webdriver
 def testOpenUrl():
 try:
 driver = webdriver.Firefox() # 打开浏览器
 driver.get('http://www.baidu.com') # 访问百度
 title = driver.title # 获取百度首页的title
 assert title == '百度一下,你就知道' # 断言
 except AssertionError:
raise AssertionError('断言失败!')
 driver.quit()

可以看到用例很简单,就是一个普通的函数(驱动浏览器,打开百度首页,断言首页的title是否正确),那么pytest是如何运行测试用例的呢?

我们可以通过cmd终端,并且换到当前用例所在的目录,输入 pytest 即可,运行结果如下所示

python的pytest框架之命令行参数详解(上)

pytest执行用例命令行参数

上面我们已经学会了执行用例的命令 就是pytest, 那么真的就这么简单了吗?其实不然,pytest 还提供了很多可供我们执行用例的命令行参数,下面我们就一一介绍并演示

1.-v

:pytest -v 说明:可以输出用例更加详细的执行信息,比如用例所在的文件及用例名称等

python的pytest框架之命令行参数详解(上)

2.-s

:pytest -s 说明:输入我们用例中的调式信息,比如print的打印信息等,我们在上面用例8行加上一句 print(driver.title),我们再运行一下我们的用例看看

python的pytest框架之命令行参数详解(上)

3.-m

:pytest -m ”标记“ 说明:执行特定的测试用例。我们再次修改一下我们的用例,并添加一个新的用例

from selenium import webdriver
 import pytest
 @pytest.mark.run_this_testcase
 def testOpenUrl():
 try:
 driver = webdriver.Firefox() # 打开浏览器
 driver.get('http://www.baidu.com') # 访问百度
 title = driver.title # 获取百度首页的title
print(driver.title)
assert title == '百度一下,你就知道' # 断言
except AssertionError:
raise AssertionError('断言失败!')
driver.quit()
def testBaidu():
driver = webdriver.Firefox() # 打开浏览器
driver.get('http://www.baidu.com') # 访问百度
title = driver.title # 获取百度首页的title
assert title == '百度一下,你就知道' # 断言

python的pytest框架之命令行参数详解(上)

我们可以看到只执行了被标记的用例,新添加的用例并没有被执行

4.-k

:pytest -k "关键字" 说明:执行用例包含“关键字”的用例

python的pytest框架之命令行参数详解(上)

5.-q

:pytest -q 说明:简化控制台的输出,可以看出输出信息和上面的结果都不一样, 下图中有两个..点代替了pass结果

python的pytest框架之命令行参数详解(上)

以上5个参数,大家可以自己尝试一下,下一篇文章会继续讲解其他几个常用的参数的使用以及pytest是如何发现测试用例的!

下篇将继续更新其他一些命令选项的使用,和pytest收集测试用例的规则!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中集合的内建函数和内建方法学习教程
Aug 19 Python
python使用邻接矩阵构造图代码示例
Nov 10 Python
基于并发服务器几种实现方法(总结)
Dec 29 Python
python解析json串与正则匹配对比方法
Dec 20 Python
Python中print和return的作用及区别解析
May 05 Python
使用Python进行体育竞技分析(预测球队成绩)
May 16 Python
python dataframe NaN处理方式
Dec 26 Python
Python基于Serializer实现字段验证及序列化
Nov 04 Python
Anaconda详细安装步骤图文教程
Nov 12 Python
Python json解析库jsonpath原理及使用示例
Nov 25 Python
分析Python感知线程状态的解决方案之Event与信号量
Jun 16 Python
基于Python编写简易版的天天跑酷游戏的示例代码
Mar 23 Python
解决Pycharm后台indexing导致不能run的问题
Jun 27 #Python
解决pycharm运行程序出现卡住scanning files to index索引的问题
Jun 27 #Python
python如何解析配置文件并应用到项目中
Jun 27 #Python
python 随机生成10位数密码的实现代码
Jun 27 #Python
python自动化测试之如何解析excel文件
Jun 27 #Python
python算法与数据结构之单链表的实现代码
Jun 27 #Python
python多线程并发实例及其优化
Jun 27 #Python
You might like
咖啡冲泡指南 咖啡有哪些制作方式 单品咖啡 意式咖啡
2021/03/06 冲泡冲煮
destoon二次开发模板及调用语法汇总
2014/06/21 PHP
php json_encode与json_decode详解及实例
2016/12/13 PHP
tp5(thinkPHP5框架)captcha验证码配置及验证操作示例
2019/05/28 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
javascript 硬盘序列号+其它硬件信息
2008/12/23 Javascript
jQuery 性能优化手册 推荐
2010/02/23 Javascript
基于jquery自定义的漂亮单选按钮RadioButton
2013/11/19 Javascript
windows8.1+iis8.5下安装node.js开发环境
2014/12/12 Javascript
javascript实现滑动解锁功能
2014/12/31 Javascript
jquery实现点击向下展开菜单项(伸缩导航)效果
2015/08/22 Javascript
vue几个常用跨域处理方式介绍
2018/02/07 Javascript
Mac下通过brew安装指定版本的nodejs教程
2018/05/17 NodeJs
微信小程序实现顶部导航特效
2019/01/28 Javascript
为什么Vue3.0使用Proxy实现数据监听(defineProperty表示不背这个锅)
2019/10/14 Javascript
node使用request请求的方法
2019/12/20 Javascript
《javascript设计模式》学习笔记四:Javascript面向对象程序设计链式调用实例分析
2020/04/07 Javascript
JS+CSS实现炫酷光感效果
2020/09/05 Javascript
Map与WeakMap类型在JavaScript中的使用详解
2020/11/18 Javascript
[04:54]DOTA2-DPC中国联赛1月31日Recap集锦
2021/03/11 DOTA
Python中使用动态变量名的方法
2014/05/06 Python
python爬虫实战之最简单的网页爬虫教程
2017/08/13 Python
基于循环神经网络(RNN)实现影评情感分类
2018/03/26 Python
在python中利用最小二乘拟合二次抛物线函数的方法
2018/12/29 Python
python的xpath获取div标签内html内容,实现innerhtml功能的方法
2019/01/02 Python
python爬虫 urllib模块反爬虫机制UA详解
2019/08/20 Python
Django使用uwsgi部署时的配置以及django日志文件的处理方法
2019/08/30 Python
Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式
2020/05/25 Python
Python 无限级分类树状结构生成算法的实现
2021/01/21 Python
用gpu训练好的神经网络,用tensorflow-cpu跑出错的原因及解决方案
2021/03/03 Python
利用HTML5+css3+jquery+weui实现仿微信聊天界面功能
2018/01/08 HTML / CSS
如何用SQL语句进行模糊查找
2015/09/25 面试题
个人违纪检讨书
2014/09/15 职场文书
2014幼儿园班主任工作总结
2014/12/04 职场文书
2015年信访维稳工作总结
2015/04/07 职场文书
2016读书月活动心得体会
2016/01/14 职场文书