简介

selenium POM Pytest 结合,通过Pytest fixture 来传递Driver 保证一个测试用例[1] :driver[1] 学习记录

插件包

selenium: 操作浏览器

pytest: drvier传递,收集/执行测试用例

pytest-xdist: 分布式执行测试用例

pytest-html: 收集测试结果-测试报告

webdriver_manager: 浏览器驱动管理,它会自动去下载合适的浏览器Driver

测试资源

被测应用: 博客后台

其实是一个只有DRF 个人博客实现的后台,用的就是Django Admin 原生后台

  1. 下载/克隆: git clone -b drf-blog https://gitee.com/zy7y/blog.git
  2. 本地启动:
1. python -m venv venv   # 创建虚拟环境

2. venv\Scripts\activate  # windows 启动虚拟环境

3. pip install -r requirements.txt # 安装依赖包

4. Django项目配置

1. python manage.py makemigrations blog
2. python manage.py migrate 3. python manage.py createsuperuser --email admin@example.com --username admin 4. python manage.py runserver

浏览器版本: Google Chrome 版本 92.0.4515.107

目录结构

目录结构生成: tree /f

├─Config    # 配置文件
│ │ __init__.py
│ └─ config.py

├─Pages # 页面对象
│ │ __init__.py
│ │ BasePage.py
│ │ HomePage.py
│ └─ LoginPage.py

├─Reports # 测试报告
│ │ report.html
│ │
│ └─ assets
│ style.css

└─Tests # 测试文件
│ │ __init__.py
│ │ conftest.py
│ │ test_base.py
│ │ test_home.py
│ └─ test_login.py
│ .gitignore # git 忽略文件
│ main.py # 启动文件
│ pytest.ini # pytest配置文件
│ readme.md # 项目说明
└─ requirements.txt # 依赖库

使用

  1. git clone https://gitee.com/zy7y/SelniumPOM
  2. python -m venv venv
  3. 激活venv: venv\Scripts\activate
  4. 运行: 执行pytest 或者 运行main.py 文件

Selnium + POM + Pytest:学习记录的更多相关文章

  1. 我的Spring学习记录(二)

    本篇就简单的说一下Bean的装配和AOP 本篇的项目是在上一篇我的Spring学习记录(一) 中项目的基础上进行开发的 1. 使用setter方法和构造方法装配Bean 1.1 前期准备 使用sett ...

  2. 我的Spring学习记录(五)

    在我的Spring学习记录(四)中使用了注解的方式对前面三篇做了总结.而这次,使用了用户登录及注册来对于本人前面四篇做一个应用案例,希望通过这个来对于我们的Spring的使用有一定的了解. 1. 程序 ...

  3. 《java从入门到精通》学习记录

    目录 <Java从入门到精通>学习记录 3 基础的基础部分: 3 一. 常量与变量 3 1. 掌握: 3 (1) .常量与变量的声明方式: 3 (2) .变量的命名规则: 3 (3) .变 ...

  4. SpringCloud基础教程学习记录

    这个学习记录是学习自翟永超前辈的SpringCloud的基础教程. 自己写这个教程的目的主要是在于,想要更凝练总结一些其中的一些实用点,顺便做个汇总,这样自己在复习查看的时候更加方便,也能顺着自己的思 ...

  5. Quartz 学习记录1

    原因 公司有一些批量定时任务可能需要在夜间执行,用的是quartz和spring batch两个框架.quartz是个定时任务框架,spring batch是个批处理框架. 虽然我自己的小玩意儿平时不 ...

  6. Java 静态内部类与非静态内部类 学习记录.

    目的 为什么会有这篇文章呢,是因为我在学习各种框架的时候发现很多框架都用到了这些内部类的小技巧,虽然我平时写代码的时候基本不用,但是看别人代码的话至少要了解基本知识吧,另外到底内部类应该应用在哪些场合 ...

  7. Apache Shiro 学习记录4

    今天看了教程的第三章...是关于授权的......和以前一样.....自己也研究了下....我觉得看那篇教程怎么说呢.....总体上是为数不多的精品教程了吧....但是有些地方确实是讲的太少了.... ...

  8. UWP学习记录12-应用到应用的通信

    UWP学习记录12-应用到应用的通信 1.应用间通信 “共享”合约是用户可以在应用之间快速交换数据的一种方式. 例如,用户可能希望使用社交网络应用与其好友共享网页,或者将链接保存在笔记应用中以供日后参 ...

  9. UWP学习记录11-设计和UI

    UWP学习记录11-设计和UI 1.输入和设备 通用 Windows 平台 (UWP) 中的用户交互组合了输入和输出源(例如鼠标.键盘.笔.触摸.触摸板.语音.Cortana.控制器.手势.注视等)以 ...

随机推荐

  1. C++标准模板库(STL)——vector常见用法详解

    vector的定义 vector<typename> name; 相当于定义了一个一维数组name[SIZE],只不过其长度可以根据需要进行变化,比较节省空间,通俗来讲,vector就是& ...

  2. C语言代码区错误以及编译过程

    C语言代码区错误 欲想了解C语言代码段会有如何错误,我们必须首先了解编译器是如何把C语言文本信息编译成为可以执行的机器码的. 背景介绍 测试使用的C语言代码 导入标准库,定义宏变量,定义结构体,重命名 ...

  3. thymeleaf模板引擎基础知识

    一.表达式 分为四类: 1.变量表达式 ${} :获取容器上下文变量的值. 举例: 获取application域中的username: ${application.username} 获取sessio ...

  4. 摆脱鼠标之Dos学习

    2015/12/24 for循环 1,创建文件 http://blog.csdn.net/wangxingbao4227/article/details/17009447 关于for循环的总结,很详细 ...

  5. Linux命令(磁盘的卸载与挂载)

    一.光盘挂载与卸载: 1.将光盘CD-ROM(hdc)安装到文件系统的/mnt/cdrom目录下的命令是 C . A mount /mnt/cdrom  B mount /mnt/cdrom /dev ...

  6. 如何设置Python环境变量

    大家好,我是Yivies.相信很多python的初学者们在进行一顿下一步下一步的安装之后,在windows command命令行输入python的时候会出现这样的情况: 可我们希望它是这样子的: 其实 ...

  7. 基于ABP落地领域驱动设计-04.领域服务和应用服务的最佳实践和原则

    目录 系列文章 领域服务 应用服务 学习帮助 系列文章 基于ABP落地领域驱动设计-00.目录和前言 基于ABP落地领域驱动设计-01.全景图 基于ABP落地领域驱动设计-02.聚合和聚合根的最佳实践 ...

  8. GetModuleFileName函数的用法

    函数的功能 获取exe可执行文件的绝对路径. 用法 通过获取到exe的路径,可以获取到程序路径下(父路径或者子路径)的一些其它文件路径. 函数原型 DWORD WINAPI GetModuleFile ...

  9. No serializer found for class com.bean.user and no properties discovered to create BeanSerializer

    解决方法: 方法1:将bean目录下的实体类属性由private改为public(不推荐): 方法2:给实体类属性设置setter和getter方法(推荐使用).

  10. kubernetes关闭基于角色的访问控制-匿名访问

    1.关闭基于角色的访问控制 如果正在使用一个带有RBAC机制的Kubernetes集群,服务账户可能不会被授权访问API服务器(或只有部分授权).目前最简单的方式就是运行下面的命令查询API服务器,从 ...