专栏首页开源优测基于pytest集成selenium

基于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),作者:苦叶子

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Selenium4.0来了,又把源码浏览了一遍

    selenium 4.0来了,最近朋友圈开始有人刷屏了,于是我也去官网看了一圈,没错selenium 4.0是要来了,但还是alpha状态,并非稳定的stabl...

    苦叶子
  • PyTest运行指定的测试集

    主要有三个层级,模块、方法/函数、类,都是setup、teardown,实际写 的时候注意大小写

    苦叶子
  • pytest源码目录概要分析

    在python安装目录的lib/site-packges下,分为pytest.py 和_pytest目录

    苦叶子
  • Pytest系列(2) - assert断言详细使用

    https://www.cnblogs.com/poloyy/category/1690628.html

    小菠萝测试笔记
  • android下拉五级菜单联动

    本人是一个不擅长Android的开发的,但是这几天在做联通的一个服务器配件管理系统,做完B/S的又要写C/S的,老板要求没办法。在做的过程中遇到了一个下拉菜单联...

    张泽旭
  • Linux中文件/文件夹无法删除的解决方案

    最近我们的服务器被黑客攻击,然后有些文件的属性被修改,导致我们无法删除病毒文件,同时采用 root 用户也无法删除,现在把解决方案记录下来。

    砸漏
  • 写出我的第一个框架:迷你版Spring MVC前期准备关于自定义注解编写核心控制器:DispatcherServletMake it run!

    OK,到这里,一个迷你版的Spring MVC就开发完成了,以前,都是用Spring MVC,从没有想过可以自己开发一个出来,这是我的第一次,我的能量超乎我的想...

    用户2890438
  • Kafka 消息可靠性

    在 Kafka 工作机制 一文提及了 Kafka 消息的不可靠性。本文就 Kafka 消息的三种不可靠性(重复、丢失、乱序),分析它们出现的内部原因和解决办法。...

    IT技术小咖
  • VB.NET 文件操作类和示例程序。textbox和listbox联动搜索

    ''' <param name="文件路径">必填:文件路径</param>

    巴西_prince
  • 小程序的大江湖

    2018年以来,一向沉稳的微信公众号频繁改版,引起震荡。其实对于微信来说,在超10亿月活用户面前任何细微的变化都会被放大。另一方面被张小龙寄予厚望的小程序也是不...

    人称T客

扫码关注云+社区

领取腾讯云代金券