基于pytest集成selenium
时间:2022-05-07
本文章向大家介绍基于pytest集成selenium,主要内容包括什么是pytest、安装pytest、安装selenium、安装pytest-selenium插件、基本示例、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
基于pytest集成selenium
什么是pytest
pytest是一个非常成熟的全功能的Python测试框架,主要特点有以下几点 :
- 简单灵活,容易上手
- 支持参数化
- 能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests)
- pytest具有很多第三方插件,并且可以自定义扩展,常用的插件:
- pytest-selenium(集成selenium)
- pytest-html(完美html测试报告生成)
- pytest-rerunfailures(失败case重复执行)
- pytest-xdist(多CPU分发)
- 测试用例的skip和xfail处理
- 可以很好的和jenkins集成
安装pytest
使用以下命令安装pytest
pip install pytest
安装selenium
使用以下命令安装最新selenium
pip install selenium -U
安装pytest-selenium插件
安装pytest集成selenium必备的插件,命令
pip install pytest-selenium
基本示例
下面看一个基本的示例
# -*- coding:utf-8 -*-
__author__ = "苦叶子"
"""
关注微信公众号:开源优测
获取更多关于开源技术在测试工作中的应用实践
"""
import pytest
import time
# 初始化selenium通用配置
@pytest.fixturedef selenium(selenium):
selenium.implicitly_wait(10)
selenium.maximize_window()
return selenium
def test_baidu_search(selenium):
# 打开百度首页
selenium.get("http://www.baidu.com")
# 定位输入框
ele = selenium.find_element_by_id("kw")
# 输入待搜索关键字
ele.send_keys("微信公众号 开源优测")
# 稍微强势等待一下
time.sleep(5)
# 断言pass
assert selenium.title == "微信公众号 开源优测_百度搜索"
# 断言fail
assert selenium.title != "微信公众号 开源优测_百度搜索"
# 浏览器会自动关闭
下面我们指定用chrome来执行一下
pytest --driver Chrome
注:需要先下载Chromedriver,并放在已配置环境变量path下的目录中
结果如下:
注:请注意看红色箭头所指向的几个关键区,请自行理解对应的信息,这将有助于你进一步了解pytest集成selenium运行时的原理。
任务1:请进一步去了解pytest-selenium输出html格式报告,并实现之
任务2:请使用pytest -h了解pytest各命令行参数的含义,并总结成笔记记录之
注:总结笔记请分享到专用群,在完成任务过程中请实时在群内发起讨论交流
- 2018年程序员的出路有哪些
- CSS魔法堂:不得不说的Containing Block
- Facebook Graph API(1)—介绍
- MongoDB学习系列(1)--入门介绍
- 2018年人工智能行业市场预测:市场规模有望突破200亿元大关
- Javascript对象的方法赋值
- CentOS挂载硬盘
- 使用jQuery UI的draggable和droppable完成拖拽功能--介绍
- Angular企业级开发(6)-使用Gulp构建和打包前端项目
- CSS魔法堂:重拾Border之——解构Border
- Angular企业级开发(7)-MVC之控制器
- Angular企业级开发(8)-控制器的作用域
- 使用jQuery Draggable和Droppable实现拖拽功能
- CSS魔法堂:重拾Border之——图片作边框
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 图解EfficientNet模型的完整细节
- (⊙o⊙)?markdown文档中插入萌萌的emoji表情
- C语言中的字符串可以怎么处理?
- 一个简单的C语言测试框架
- Let's Encrypt实践指北
- MassTransit Get Started->
- 一次性把所有普通和经典的网页布局讲得通通透透的,多图预警,建议收藏
- Github标星 8K+,免费又好用的Redis客户端工具!
- Python判断字符串是否包含特定子串的7种方法
- 用后台开发的逻辑理念学习VUE
- 进程管理-Linux每日一练(6)
- AkShare-能源数据-碳排放-国际行情
- Linux 【Shell脚本经典案例】
- 【Vulnhub】SecTalks: BNE0x00 - Minotaur
- Spring Boot扩展机制 - Spring Factories