pytest自学第一期
开始自学pytest了,我并不想看网上的各种自学教程和文档,要看咱们今天就看pytest的官方文档,不会英语咱们就用翻译,看不懂原理咱们就翻源码,就人肉试错
学习一个技术,使用速成鸡的套路是一个办法,啃文档小火慢炖也是一个方法,我个人是打算了解pytest框架后集成seleium框架进行一个整体的自动化框架的搭建,一定会遇到一些需要我自己动手扩展才能实现的需求,这样的话速成鸡套路对未来来说肯定是会给我挖坑埋雷的,所以今天直接使用文档开淦
第一章:安装与启动
1.1:安装

1.2:简单启动
先看pytest文档的“HELLO WORLD”事例,简单的4行代码,及简单的运行命令


通过这个事例,我们虽然能简单看懂了这个小Demo,但是同样我们也会有几个问题:
1:我创建了同样的文件,但是不知道在哪里输入命令运行pytest?
回答:pychram的这里
但是我在cmd中使用同样命令无法运行,我不知道为什么,标红以后研究
2:我运行时没有传入任何目录,pytest如何找到我要运行的文件?
回答:首先要看你在哪个目录运行pytest命令,如果你只是运行了pytest这个命令,那么就会在你运行命令的目录中去寻找 所有以 test_*.py 和 *_test.py 命名的文件,所以该例子中你必须将测试py文件创建合适的命名。
3:pytest以什么方式寻找文件,会不会影响我的命名,会不会有不安全,不严谨的情况存在导致出现奇怪的事情?
回答:pytest的文件查找方式和方法查找方式遵循 Standard test discovery rules(标准测试发现原则)
标准测试发现原则,想扩展可以自行阅读:https://docs.pytest.org/en/stable/goodpractices.html#test-discovery

4:前面说过了pytest会查找全部符合名字的文件,那么pytest命令会运行多个文件?
回答:会运行找到的全部符合规则的文件,后续会学习如何控制运行自己想要运行的文件
5:该例子中有两个方法,pytest如何知道我要运行测试的方法?
回答:同样使用该查找方法,查找我们要测试的方法
6:为何该例子中,pytest 认定测试没有通过,并给出了 F 的测试结果,pytest是根据什么条件判断的?
回答:F代表没有通过
pytest通过 assert关键字进行测试结果的判定,assert 为true即通过,反之失败
如果测试的方法中没有 assert关键字进行判断,那么这个方法的测试便会通过,当然也可以使用多个assert关键字进行多次测试如下图:


通过这几个问题,对pytest有了一个比较基础的理解,接下来再继续慢慢学
1.3 pytest判断异常
前面提到了pytest可以使用assert关键字断言某一个结果的值是 True 还是 False 来判断测试结果
我们是否能判断某一个方法是否触发了某个异常呢?肯定是可以的

但是使用原来的assert断言模式其实也是可以实现的,只不过是麻烦一些,但是需要知道pytest提供了更方便的内置方法


1.5 class中运行多个测试用例
可以将多个测试用例放在一个class中,这样可以分用例查看各个用例的运行结果(所以不要在一个方法中使用多个assert的方法将创造多个用例,因为其中一个assert没过去其他的就不执行了,而且pytest提供了更简单的方法不是,如题)


注意,使用这样方法时,class(类名) 依然要遵循那个查找原则,且 T要大写
class test_c 找不到
class abc_c 找不到
class Ttest_c 找不到
class Testcc 可以
class Test_c 可以
class ss_Test 找不到
class Test 可以
1.6 为测试创建唯一的临时文件夹
我不知道这个有什么用。。。


第一期完,后续还有不懂的我了解后会自动补全,我肯定有错误地方的期望多多指出,继续学习
pytest自学第一期的更多相关文章
- pytest自学第二期
2.1 通过python解释器调用 pytest 我不知道有什么用:-) 以后就这样,如果有自己学过但是不知道的东西,就挂在那里晒着鞭尸,一直不会就一直鞭尸,直到自己参透了其中的道理再回到这里补全 在 ...
- 从零自学Hadoop(03):Linux准备上
阅读目录 序 检查列表 常用Linux命令 搭建环境 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,Sou ...
- 2019第一期《python测试开发》课程,10月13号开学
2019第一期<python测试开发>课程,10月13号开学! 主讲老师:上海-悠悠 上课方式:QQ群视频在线教学,方便交流 本期上课时间:10月13号-12月8号,每周六.周日晚上20: ...
- 聊一聊我在 B 站自学 Java 的经历吧
Hey guys ,这里是 cxuan,欢迎你收看我最新一期的文章. 这是一篇鸽了很久的文章...... 事情还要从上回说起...... 我爱 B 站! 这篇文章我汇总了 B 站上计算机基础(操作系统 ...
- 从零自学Hadoop(22):HBase协处理器
阅读目录 序 介绍 Observer操作 示例下载 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,Sour ...
- 前端自学路线之js篇
上一篇我们讲了前端切图的学习路线,不知大家有没有收获.今天来聊聊前端工程师的核心技能之——JavaScript.js这门语言看似简单,但要做到入门.熟练以至于架构的程度,还是有一段路要走的,今天就来聊 ...
- 从零自学Hadoop(20):HBase数据模型相关操作上
阅读目录 序 介绍 命名空间 表 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 ...
- 从零自学Hadoop系列索引
本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 从零自学Hadoop(01):认识Hadoop ...
- 从零自学Hadoop(21):HBase数据模型相关操作下
阅读目录 序 变量 数据模型操作 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 ...
随机推荐
- Jmeter 常用函数(13)- 详解 __machineIP
如果你想查看更多 Jmeter 常用函数可以在这篇文章找找哦 https://www.cnblogs.com/poloyy/p/13291704.html 作用 返回机器(电脑)IP 语法格式 ${_ ...
- Ceph的Python接口
参考文章 ceph的python_api文档: http://docs.ceph.com/docs/master/rados/api/python/ 连接ceph集群 import rados clu ...
- 第3篇 Scrum 冲刺博客
1.站立会议 照骗 进度 成员 昨日完成任务 今日计划任务 遇到的困难 钟智锋 确定客户端和服务器通信的形式 重新设计项目执行流程 我的规划过于混乱,对应难以同步开发 庄诗楷 绘制棋盘 游戏窗口的制作 ...
- All in One 你想知道的 hacker 技术都在这里
作者:HelloGitHub-小鱼干 hacker 这个词,大多数理解为黑客,而维基百科对其的定义为--黑客(Hacker)是指对设计.編程和计算机科学方面具高度理解的人,在本文中 hacker 主要 ...
- Java多线程_Semaphore信号量
概念: Semaphore是信号量,又称为信号灯,它可以控制某个共享资源可被同时访问的次数,即可以维护当前访问某一共享资源的线程个数,并提供了同步机制.当Semaphore的个数变成1时,即代表只允许 ...
- codeforce Round #665(div 2)A B C
A. Distance and Axis 题意:在一个0x轴上,给了a在0x轴上的坐标,要你放一个b点使得abs(0B - AB)的值等于 k,但是有的时候如果不移动A点就不能实现这个条件,所以要你求 ...
- sql 游标(理论)
游标是处理结果集的一种机制 --声明游标 --ISO 语法 DECLARE cursor_name [ INSENSITIVE ] [ SCROLL ] CURSOR FOR select_state ...
- 安装oracleXE快捷版(二)
-bash-3.2$ 是oracle用户下的提示符 [root@localhost ~]# 是root用户下的提示符 #用root去修改oracle用户的密码123456[root@localhost ...
- 手机预览本地html
下载nginx,地址http://nginx.org/en/docs/windows.html 解压后替换html中内容即可 在浏览器输入http://localhost/即可预览 或者换成ip ...
- 数据库行转列的sql语句
问题描述 假设有张学生成绩表(CJ)如下Name Subject Result张三 语文 80张三 数学 90张三 物理 85李四 语文 85李四 数学 92李四 物理 82 现在 想写 sql 语句 ...