pytest和unittest都是python中的测试框架,pytest相比unittest 更加的灵活,具体体现在 以下几点

1.写测试方法时不用继承类

2.前置后置放在一起

2.1如果是全局共享的前置,就会写在一个固定的文件中,(比如一个系统中打开浏览器,访问系统网址就是全局共享的前置)这个文件命名为conftest,其他的各个模块设计到的前置放在用例文件中

from selenium import webdriver
import pytest
from TestDatas import global_datas as gd @pytest.fixture
def init_driver():
driver = webdriver.Chrome()
driver.maximize_window()
driver.get(gd.login_url)
yield driver
driver.quit()

  

2.2前置后置的定义语法,@pytest.fixture,前置后置用yield隔开,yield前的就是前置,yield后的就是后置,yield后面加的语句是返回值,如上面代码中的yield driver,driver就是返回值

2.3用例中用到前置时,在用例前加上@pytest.mark.usefixtures

@pytest.mark.usefixtures("前置的名称")

2.4如果用例要用上返回值,就在函数参数上加上前置名称

    def test_login_success(self,init_driver):#init_driver是前置名称
# 登录
#LoginPage(self.driver).login_success(*lds.success)
LoginPage(init_driver).login_success(*lds.success)
#断言
assert(HomePage(init_driver).get_element_exists())==True

3.有给用例打标签的功能,运行时,通过标签进行分类运行

3.1先建一个文件,定义好标签名,作者在此用的时ini文件来定义标签名,语法如下,markers=标签名

[pytest]
markers=
demo_fail: just for demo show
smoke

3.2在需要打标签的测试函数以及类上,加上@pytest.mark.标签名

@pytest.mark.标签名

  

4运行用例,unittest需要加载用例,而pytest中是自动识别用例,pytest命令在哪个目录下执行,那就默认从哪个目录下开始搜索用例。

5.pytest断言要比unittest灵活,assert 表达式即可。(erunittest当中,要assert*)

  

python自动化测试pytest框架的更多相关文章

  1. selenium + python自动化测试unittest框架学习(二)

    1.unittest单元测试框架文件结构 unittest是python单元测试框架之一,unittest测试框架的主要文件结构: File >report >all_case.py &g ...

  2. 自从学会了Python自动化Pytest框架,领导再也不敢在我背后指手划脚了

    前言 大家都知道Python有自带的单元测试框架unittest,那为什么还要学习Pytest呢?先了解下Pytest优点 pytest: pytest是一个非常成熟的全功能的Python测试框架,是 ...

  3. selenium + python自动化测试unittest框架学习(五)webdriver的二次封装

    因为webdriver的api方法很长,再加上大多数的定位方式是以xpath方式定位,更加让代码看起来超级长,为了使整体的代码看起来整洁,对webdriver进行封装,学习资料来源于虫师的<se ...

  4. selenium + python自动化测试unittest框架学习(一)selenium原理及应用

    unittest框架的学习得益于虫师的<selenium+python自动化实践>这一书,该书讲得很详细,大家可以去看下,我也只学到一点点用于工作中,闲暇时记录下自己所学才能更加印象深刻. ...

  5. python之pytest框架实现

    一.pytest测试框架简介: pytest是一个非常成熟的全功能的Python测试框架,主要有以下几个特点: 简单灵活,容易上手 支持参数化 能够支持简单的单元测试和复杂的功能测试,还可以用来做se ...

  6. selenium + python自动化测试unittest框架学习(四)python导入模块及包知识点

    在写脚本的时候,发现导入某些模块,经常报错提示导入模块失败,这里来恶补下python导入模块的知识点. 1.模块导入时文件查找顺序 在脚本中,import xxx模块时的具体步骤: (1)新建一个mo ...

  7. selenium + python自动化测试unittest框架学习(三)webdriver元素定位(一)

    1.Webdriver原理 webdirver是一款web自动化操作工具,为浏览器提供统一的webdriver接口,由client也就是我们的测试脚本提交请求,remote server浏览器进行响应 ...

  8. selenium + python自动化测试unittest框架学习(六)分页

    接触的项目分页的形式是以下形式: 想要获取总页数后,遍历执行翻页的功能,但由于分页是以javascript方法实现的,每次点击确定按钮后,页面就回刷新,webelement元素过期无法遍历下一个进行翻 ...

  9. selenium + python自动化测试unittest框架学习(七)随机生成姓名

    在自动化测试过程中经常要测试到添加用户的操作,每次都要输入中文,原本是找了十几个中文写成了列表,然后从列表中随机取出填入用户名文本框中,随着测试的增加,发现同名的人搜索出来一大堆,最后在网上找了个随机 ...

随机推荐

  1. Scala 特殊符号含义

    date: 2019-08-01 11:15:27 updated: 2019-08-22 15:22:32 Scala 特殊符号含义 参考地址 1. ::: :::(三个冒号)只用于连接两个 Lis ...

  2. D. Concatenated Multiples 解析(思維)

    Codeforce 1029 D. Concatenated Multiples 解析(思維) 今天我們來看看CF1029D 題目連結 題目 給你一個序列\(a\)和一個數字\(k\),求有幾種ind ...

  3. git 移除远程仓库关联

    1 git remote rm origin // 移除本地关联 2 git remote add origin git@github.com/example.git // 添加线上仓库 3 git ...

  4. Java学习的第三十九天

    1.例3.7 100~200之间全部素数 package bgio; public class cjava { public static void main(String[]args) { int ...

  5. Go语言反射(reflect)及应用

    Go语言反射(reflect)及应用 基本原理及应用场景 在编译时不知道类型的情况下,可更新变量.在运行时查看值.调用方法以及直接对它们的布局进行操作,这种机制被称为反射. 具体的应用场景大概如下: ...

  6. JAVA学习线路:day14-网络编程

    心得: 我是一名正在自学的java的即将毕业的大学生 总结笔记是为了让自己更好的理解和加深印象.可能不是那么美观,自己可以看懂就好 所有的文档和源代码都开源在GitHub: https://githu ...

  7. 2.1获取Git仓库-2.2记录每次更新到仓库

    2.1 获取 Git 仓库 获取 Git 仓库通常有两种方式 将尚未进行版本控制的本地目录转换为 Git 仓库: 从其它服务器 克隆 一个已存在的 Git 仓库. 在已存在目录中初始化仓库 首先进入该 ...

  8. 【SpringBoot】09.SpringBoot整合Freemarker

    SpringBoot整合Freemarker 1.修改pom文件,添加坐标freemarker启动器坐标 <project xmlns="http://maven.apache.org ...

  9. 剑指29:最小的k个数

    题目描述 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4. class Solution {public:    vector& ...

  10. 334. Increasing Triplet Subsequence(也可以使用dp动态规划)

    Given an unsorted array return whether an increasing subsequence of length 3 exists or not in the ar ...