pip install pytest
pytest 单元测试框架
pytest高于unittest测试框架
unittest测试类需要继承unittest.TestCase类
pytest不需要继承,可以是一个函数,也可以是一个类
unittest参数化需要依赖第三方的库
pytest不需要依赖,直接使用内部的库parametrize
unittest测试报告HTMLTestRunner
pytest 测试报告pytest-html 或者是 allure
unittest是没有插件的
pytest有很丰富的插件
unittest不支持失败重试
pytest支持失败重试
import pytest
class TestF1:
    def test_01(self):
        print('AAA')
    def test02(self):
        print('BBB')
==:内容和类型必须同时满足
in:后者包含前者
is:前后者两个值相等
def A_test():
    assert 1==1
def B_test():
    assert 1==2
def test_in():
    assert '测试实战' in 'Python测试实战'
def test_is():
    assert 2 is 2
if __name__ == '__main__':
    pytest.main(['-v'])
执行pytest测试用例会显示进度条
pip install pytest-sugar 
1. -v:输出详细的信息
2. -s: 输出测试函数或者测试方法里面的print()的内容
3. -k:按分类执行测试点
4. -m:进行分组
5. -x:执行失败立即停止(后面的测试函数/方法不执行)
6. --maxfail:执行失败的最大次数(如果只有一个失败的--maxfail=1,后面的代码不执行,--maxfail=2执行后面的代码)
7. --tb=no:关闭信息
8. --tb=short:只输出assert的错误信息(会提示具体的函数以及错误代码)
9. --tb=line:一行行展示所有错误信息的位置(不会提示具体函数,但是会提示断言失败的位置)
10. --lf:定位错误
11. --ff:遇到错误继续执行
12. --duration=0:测试函数执行速度
pytest代码执行的顺序:
pytest -v xx.py
pytest -v xx.py::test_001
pytest -v -s xx.py
pytest -v -k 'login or logout' xx.py
pytest -v -m login xx.py
pytest -v -k 'login or ui' xx.py
pytest -v -x xx.py
pytest -v --maxfail=2 xx.py
pytest -v  xx.py --tb=no
pytest -v  xx.py --tb=short
pytest -v  xx.py --tb=line
pytest -v  xx.py --tb=line
pytest -v --lf xx.py
pytest -v --ff xx.py
pytest -v --duration=0 xx.py
@pytest.mark.api
def test_001():
    assert 1==1
class Login:
    @pytest.mark.login
    def test_login_01(self):
        print('登录成功1')
    @pytest.mark.login
    def test_login_02(self):
        print('登录成功2')
    @pytest.mark.logout
    def test_logout_01(self):
        print('退出登录1')
    @pytest.mark.logout
    def test_logout_02(self):
        print('退出登录2')
import requests
def test_baidu():
    '''测试百度链接'''
    r = requests.get('http://www.baidu.com')
    assert r.status_code == 200
def test_jd():
    '''测试京东链接'''
    r = requests.get('http://www.jd.com')
    assert r.status_code == 200
def test_taobao():
    '''测试淘宝链接'''
    r = requests.get('http://www.taobao.com')
    assert r.status_code == 200
def test_sina():
    '''测试新浪链接'''
    r = requests.get('https://mail.sina.com.cn/')
    assert r.status_code == 200
pytest 和 selenium 整合    
pip install pytest-selenium
执行:
pytest -v xx.py --driver Chrome
import time
from selenium import webdriver
driver = webdriver.Chrome()
import pytest
def login(selenium,username=None,password=None):
    '''测试公共分离'''
    selenium.get('https://mail.sina.com.cn/')
    time.sleep(2)
    selenium.find_element_by_id('freename').send_keys(username)
    time.sleep(2)
    selenium.find_element_by_id('freepassword').send_keys(password)
    selenium.find_element_by_class_name('loginBtn').click()
def test_login_pwd_null(selenium):
    '''测试新浪邮箱用户密码为空'''
    login(selenium=selenium,username='',password='')
    user = selenium.find_element_by_class_name('loginError.tip11').text
    assert user == '请输入邮箱名'
def test_pwd_null(selenium):
    '''测试新浪邮箱密码为空'''
    login(selenium=selenium,username='tao@sina.com',password='')
    pwd = selenium.find_element_by_class_name('loginError.tip13').text
    assert pwd == '请输入密码'

Python+pytest知识点回顾的更多相关文章

  1. Python + unittest知识点回顾

    postman 安装Newman 先安装node.js,把npm添加到环境变量中. npm install newman --registry=https://registry.npm.taobao. ...

  2. Python + Requests 知识点回顾

    http://www.downza.cn/soft/11145.html PS下载地址 http://www.bejson.com/jsonviewernew/ JSON的在线视图 import re ...

  3. 零基础Python知识点回顾(一)

    如果你是小白,建议只要安装官网的python-3.7.0-amd64.exe 然后在电脑cmd命令提示符  输入检查是否已经安装pip,一般安装了python都会有的. >pip         ...

  4. django知识点回顾与补充

    一.django知识点回顾 1.Cookie操作 - 客户端本地存储的键值对 2.Session操作 - 3.URL路由 - /index -> view.函数 4.MTV 5.View中返回方 ...

  5. Python+Pytest+Allure+Git+Jenkins接口自动化框架

    Python+Pytest+Allure+Git+Jenkins接口自动化框架 一.接口基础 接口测试是对系统和组件之间的接口进行测试,主要是效验数据的交换,传递和控制管理过程,以及相互逻辑依赖关系. ...

  6. 最全Python基础知识点梳理

    本文主要介绍一些平时经常会用到的python基础知识点,用于加深印象,也算是对于学习这门语言的一个总结与回顾.python的详细语法介绍可以查看官方编程手册,也有一些在线网站可以学习 python语言 ...

  7. 面试前的准备---C#知识点回顾----03

    经过一天的奔波,喜忧参半,不细表 再回看下标题,C#知识点回顾 再看下内容,数据库3NF 原谅我这个标题党 今天继续回忆 1.HTTP中Post和Get区别 这忒简单了吧,大家是不是感觉到兴奋了,长舒 ...

  8. python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。

    本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding: ...

  9. Spring知识点回顾(08)spring aware

    Spring知识点回顾(08)spring aware BeanNameAware 获得容器中的bean名称 BeanFactoryAware 获得当前的bean factory Applicatio ...

随机推荐

  1. Docker Buildx插件

    Docker Buildx插件 Overview Docker Buildx是一个CLI插件,它扩展了Docker命令,完全支持Moby BuildKit builder toolkit提供的功能.它 ...

  2. QT基本数据类型

    因为Qt是一个C++框架, 因此C++中所有的语法和数据类型在Qt中都是被支持的, 但是Qt中也定义了一些属于自己的数据类型, 下边给大家介绍一下这些基础的数类型. QT基本数据类型定义在#inclu ...

  3. Anno微服务Viper(控制面板) 支持在线部署

    1.Anno简介? Anno是一个微服务框架引擎.入门简单.安全.稳定.高可用.全平台可监控.依赖第三方框架少.可在线升级部署. 2.Viper简介 Viper 是一个基于Anno微服务引擎开发的Da ...

  4. Air722UG_模块硬件设计手册_V1.1

    下载PDF版本: Air722UG_模块硬件设计手册_V1.1.pdf @ 目录 1. 绪论 2.综述 2.1 型号信息 2.2 主要性能 2.3 功能框图 3.应用接口 3.1 管脚描述 3.2 工 ...

  5. Xmanager6 企业版安装

    Xmanager6 企业版安装 链接:https://pan.baidu.com/s/1QZOD0iPd4WbVHBVXIbJ-fw 提取码:ebkl 一.安装教程 1.1 下载解压,双击安装exe主 ...

  6. jenkins 修改端口后无法启动的解决思路

    一.问题 jenkins网站绑定域名后直接通过域名访问使用的是8080端口,为方便用户访问因此须监听80端口,而为了安全起见linux一般不用root身份运行,综上,需要以普通用户来运行监听80端口时 ...

  7. 15、linux文件、目录的权限及如何改变权限(root用户不受任何权限的限制)

    15.1.linux普通文件的读.写.执行权限说明: r:读,表示具有读取\阅读文件内容的权限: w:可写,表示具有新增,修改文件内容的权限: 如果没有r配合,那么vi编辑文件会提示无法编辑(但可以强 ...

  8. 4、mysql登录密码修改和找回

    操作适合5.1-5.5:当前的环境是5.5的环境: 4.1.mysql启动的原理: mysqld_safe -> my.cnf ->mysql.sock http://blog.51cto ...

  9. c++11 线程间同步---利用std::condition_variable实现

    1.前言 很多时候,我们在写程序的时候,多多少少会遇到下面种需求 一个产品的大致部分流程,由工厂生产,然后放入仓库,最后由销售员提单卖出去这样. 在实际中,仓库的容量的有限的,也就是说,工厂不能一直生 ...

  10. 浅析富文本编辑器框架Slate.js

    浅析富文本编辑器框架Slate.js 本文不是关于Slate.js使用入门的文章,如果还不了解该框架,建议先阅读下官方的文档:Slate官网文档 关于Slate的一些特性 不同于其他编辑器类的库,Sl ...