基于pytest集成selenium

基于pytest集成selenium

什么是pytest

pytest是一个非常成熟的全功能的Python测试框架,主要特点有以下几点 :

  1. 简单灵活,容易上手
  2. 支持参数化
  3. 能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests)
  4. pytest具有很多第三方插件,并且可以自定义扩展,常用的插件:
  • pytest-selenium(集成selenium)
  • pytest-html(完美html测试报告生成)
  • pytest-rerunfailures(失败case重复执行)
  • pytest-xdist(多CPU分发)
  1. 测试用例的skip和xfail处理
  2. 可以很好的和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各命令行参数的含义,并总结成笔记记录之

注:总结笔记请分享到专用群,在完成任务过程中请实时在群内发起讨论交流

原文发布于微信公众号 - 开源优测(DeepTest)

原文发表时间:2018-02-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序你好

.Net桌面系统架构设计

16810
来自专栏FreeBuf

看我如何利用开发人员所犯的小错误来盗取各种tokens

实际上,在日常的开发过程中,开发人员很有可能会犯各种各样貌似“无伤大雅”的小错误,单独一个这样的小错误可能并不能搞什么事情,但如果将这些错误串起来形成一个漏洞链...

28950
来自专栏纯洁的微笑

再有人问你分布式事务,把这篇扔给他

不知道你是否遇到过这样的情况,去小卖铺买东西,付了钱,但是店主因为处理了一些其他事,居然忘记你付了钱,又叫你重新付。又或者在网上购物明明已经扣款,但是却告诉我没...

41310
来自专栏Golang语言社区

Golang学习-第三篇 认识Web框架

序言 作为一个Web开发人员,相信对框架并不陌生。那么什么是Web框架呢?我们学习的语言中有哪些框架呢?带着这两个疑问,来走进我们今天要写的内容。 正文 什么是...

47050
来自专栏小狼的世界

AWStats日志文件中的一些术语解析

Number of visits made by all visitors. 所有用户的访问总数。

11140
来自专栏Linyb极客之路

高并发之降级

在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。之前已经有一些文章介绍过缓存和限流了。本文将详细聊聊降级。

27820
来自专栏杨建荣的学习笔记

MySQL备份和恢复工具图谱

之前没有认真整理,感觉备份工具就是mysqldump,xtrabackup了,但是如果认真想一想,其实会发现还是有很多其他丰富的功能。 比如数据的逻辑...

313100
来自专栏FreeBuf

开发者误读芯片厂商调试文档,导致主要操作系统均出现新内核漏洞

美国计算机安全应急响应中心(以下简称“CERT”)日前发布公告称,Windows、macOS、Red Hat、Ubuntu、SUSE Linux、FreeBSD...

13150
来自专栏喵了个咪的博客空间

phalapi-进阶篇7(使用缓存以及用redis拓展解决实际问题)

#phalapi-进阶篇7(使用缓存以及用redis拓展解决实际问题) ? ##前言## 先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样...

487110
来自专栏IT大咖说

分布式内存数据库新架构,极速OLTP应用新利器

内容来源:2018 年 11 月 10 日,Oracle 数据库首席产品经理杨琳在“2018 SOUG年度数据库技术峰会”进行《Oracle TimesTen ...

26420

扫码关注云+社区

领取腾讯云代金券