文档章节

Pytest框架之命令行参数1

o
 osc_gu9d45li
发布于 2019/04/07 20:41
字数 1086
阅读 7
收藏 0

精选30+云产品,助力企业轻松上云!>>>

前言

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

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

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

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

3. 测试的可读性

4.易于上手

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

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

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

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

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

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

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

Pytest执行用例命令行参数

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

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

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

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

 1 from selenium import webdriver
 2 import pytest
 3 
 4 @pytest.mark.run_this_testcase
 5 def testOpenUrl():
 6     try:
 7         driver = webdriver.Firefox() # 打开浏览器
 8         driver.get('http://www.baidu.com') # 访问百度
 9         title = driver.title # 获取百度首页的title
10         print(driver.title)
11         assert title == '百度一下,你就知道' # 断言
12     except AssertionError:
13         raise AssertionError('断言失败!')
14     driver.quit()
15 
16 def testBaidu():
17     driver = webdriver.Firefox()  # 打开浏览器
18     driver.get('http://www.baidu.com')  # 访问百度
19     title = driver.title  # 获取百度首页的title
20     assert title == '百度一下,你就知道'  # 断言

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

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

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

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

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
面向对象+unittest+pytest

date:2018512+513 day07aft+day08mor 一.面向对象编程 1.定义类,类的继承 ps:与普通函数相比,在类中定义的函数第一个参数必须是类的本身实例变量self,在调用时,该参数不用传值 2.init方...

osc_xp2ngacj
2018/05/25
9
0
Appium 并发多进程基于 Pytest框架

前言: 之前通过重写unittest的初始化方法加入设备参数进行并发,实现了基于unittest的appium多设备并发,但是考虑到unittest的框架实在过于简陋,也不方便后期的Jenkins的持续集成,所以想换...

osc_mcgiza9x
2019/01/28
6
0
python pytest测试框架(二)

本文链接:https://blog.csdn.net/yxxxiao/article/details/94602614 目录 一、pytest 命令行传参 二、pytest 断言   1、正常断言   2、异常断言 三、pytest 生成测试报告   1、文本格...

osc_qzrqhs9y
2019/09/10
3
0
pytest系列(四)- pytest+allure+jenkins - 持续集成平台生成allure报告

pytest是什么 pytest是python的一款测试框架,拥有unittest的功能并比它更丰富。 allure是什么 有非常多的优秀的测试框架,但却是有非常少优秀的报告工具可以展示非常清楚的用例执行过程和结...

osc_5yejhemb
2019/09/12
13
0
pytest的使用方法-未完待续

先交代一下背景, 最近写代码, 想重构总是担心那里改坏了, 或者把依赖,导入等玩坏了, 但又没法检测. 面对自己之前的稀烂代码无可奈何, 痛下决心研究一下pytest. 目前已经够基本使用. 1. 为啥要...

osc_z7ezpf37
2018/06/18
9
0

没有更多内容

加载失败,请刷新页面

加载更多

等到所有jQuery Ajax请求都完成了吗? - Wait until all jQuery Ajax requests are done?

问题: How do I make a function wait until all jQuery Ajax requests are done inside another function? 我如何让一个函数等到所有jQuery Ajax请求都在另一个函数中完成之后? In short...

富含淀粉
10分钟前
0
0
OSChina 周日乱弹 —— 那么长的绳子,你这是放风筝呢

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @ 巴拉迪维:黑豹乐队的单曲《无地自容》 耳畔突然响起旋律,是那首老歌。中国摇滚有了《一无所有》不再一无所有;中国摇滚有了《无地自容》不...

小小编辑
今天
65
1
《吐血整理》-顶级程序员书单集

你知道的越多,你不知道的越多 给岁月以文明,而不是给文明以岁月 前言 王潇:格局决定了一个人的梦想,梦想反过来决定行为。 那格局是什么呢? 格局是你能够看见的深度、广度和密度。 王潇认...

敖丙
2019/12/11
11
0
我可以在Android版式中加下划线吗? - Can I underline text in an Android layout?

问题: 如何在Android布局xml文件中定义带下划线的文本? 解决方案: 参考一: https://stackoom.com/question/A31z/我可以在Android版式中加下划线吗 参考二: https://oldbug.net/q/A31z/...

法国红酒甜
今天
26
0
干掉ELK | 使用Prometheus+Grafana搭建监控平台

什么是Prometheus? Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus使用Go语言开发,是Google BorgMon监控系统的开源版本。 Prometheus的特点 · 多维度...

木九天
今天
34
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部