Python+Selenium框架篇1-介绍unittest单元测试框架

2023-11-10

本文介绍什么是unittest单元测试框架
1.什么是unittest框架?
unittest框架(原名PyUnit框架)是Python语言自带的单元测试框架,Python2.1及其之后的版本已将unittest作为一个标准模块放入Python开发包中。单元测试是负责对软件最小单元(模块)进行验证,使用软件设计文档为指南对程序分支进行测试已发现模块中存在的错误。
接下来再介绍下重要的4个概念,方便更好的理解单元测试的基本特征:
Test Case】
一个TestCase的实例就是一个测试用例,也就是一个完整的测试流程。包括测试前环境的搭建(setUp)、实现测试过程的代码(run),已经测试结束环境的还原(tesrDown)。这就是单元测试的本质,一个测试用例就是一个测试单元,通过运行这个测试单元,可以对某一个功能进行验证。
【Test Suit】
一个功能的验证往往需要多个测试用例,可以把多个测试用例集合在一起执行,也就产生了测试套件TestSuit的概念。TestSuit用来组装单个测试用例。可以通过addTest加载TestCase到TestSuit中,从而返回一个TestSuit实例。
【Test Runner】
TestRunner执行加载好的测试用例(test suit)或(test case),并返回一个特殊值来表示执行结果。
【Test Fixture】
对一个测试用例环境的搭建和销毁,就是一个fixture,通过覆盖TestCase的setUp()和tesrDown()方法来实现。在setUp()中提供前置条件,一般是开启浏览器;在tearDown()中提供测试结束操作,一般是关闭浏览器

创建一个test_baidu.py文件,编写测试用例,测试百度搜索
代码如下:

import unittest,time
from selenium import webdriver

class BaiDu_Search(unittest.TestCase):

    def setUp(self):
        '''
        前置条件准备,准备浏览器
        :return:
        '''
        self.driver = webdriver.Chrome()
        self.driver.maximize_window()	#窗口最大化
        self.driver.implicitly_wait(10)	#隐式等待10s查询元素
        url = 'http://www.baidu.com/'
        self.driver.get(url)

    def tearDown(self):
        '''
        测试结束,关闭浏览器
        :return:
        '''
        self.driver.quit()

    def test_search(self):
        '''
        测试用例脚本,一定要test开头
        :return:
        '''
        self.driver.find_element_by_id('kw').send_keys('selenium')
        time.sleep(2)
        self.driver.find_element_by_id('su').click()
        title = self.driver.title       #获取搜索页面title
        self.assertIn('selenium',title,msg='The test_search Fail')     #断言asserIn是否包含

if __name__=='__main__':
    unittest.main()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python+Selenium框架篇1-介绍unittest单元测试框架 的相关文章

随机推荐

  • Vue自定义指令directive(详细)

    个人网站 紫陌 笔记分享网 想寻找共同学习交流 共同成长的伙伴 请点击 前端学习交流群 1 什么是自定义指令 v 开头的行内属性 都是指令 不同的指令可以完成或实现不同的功能 除了内置指令外 Vue 也允许注册自定义指令 有的情况下 你仍然
  • 服务器上安装mpi4py

    服务器上安装mpi4py 尝试方法1 失败 python m pip install mpi4py 结果报错 缺失某一个库文件导致编译失败 解决方法 如果有权限的话可以sudo安装libopenmpi dev解决 否则只能手动编译 尝试方法
  • Python - 注释

    单行注释 comments 多行注释 comments comments 模块文档 1 用法 模块名 doc 2 显示代码块的简要说明 3 任何代码块 文件 类 函数 均可以有文档说明 不跨行 comments 跨行 comments co
  • OkHttp:自定义缓存

    设置OkHttp 的缓存策略 没网络直接读取缓存 并且设置缓存生命周期为 30s 自定义 Interceptor 请求策略 没有网络直接读取缓存 public class CacheRequestInterceptor implements
  • 目标检测算法——mmdetection下面的deformable-detr运行

    1 环境 包 版本 mmcv full 1 4 2 mmdet 2 19 1 torch 1 10 0 cu113 torchvision 0 11 1 cu113 2 文档 mmet官方文档 mmcv官方文档 源码下载 3 数据集 自定义
  • javascript的比较运算符

    比较运算符的隐士转换 这里只比较 字符串和 数字 对象的比较没有意义 一般返回的是false 234 lt 78 true 234 lt 78 false 234 lt 78 false 总结 只有当 comparison operator
  • Qt中的ui指针和this指针

    本博客中关于C 和QT 无特别说明开发环境为 Visual studio 2013 QT为5 9 9 特此说明 谨慎参考 希望能帮助到爱好者 首先看ui指针的定义 在mainwindow h中 private Ui MainWindow u
  • VisualStudio 无法登录

    文章转载自 https cloud tencent com developer article 1342617 如果遇到 visualStudio 无法登陆 可以看下我的方法 可能有用 尝试关闭代理 打开设置 网络 代理 关了它 试试 如果
  • zookeeper基本概念及使用场景

    zookeeper基本概念及使用场景 Zookeeper作为一种协调分布式应用高性能的调度服务 在ZooKeeper中 节点类型可以分为 持久节点 PERSISTENT 临时节点 EPHEMERAL 时序节点 SEQUENTIAL 具体在节
  • 机器学习项目的实验方法

    发现对于一些机器学习项目 在项目进行中往往会直接就开始编码实现 而没有一套完整的方法论和有实操性的流程 经过一些粗浅的研究 下面写出一些对于此的部分思考 或有参考借鉴之用 实验开始前 需要清楚研究什么 如何收集数据 打算怎样分析 1 研究目
  • Crunchfish发布XR Skeleton手势交互解决方案

    转自 https baijiahao baidu com s id 1677811512042412943 wfr spider for pc 移动交互解决方案开发商Crunchfish日前发布了名为XR Skeleton的手势控制技术 只
  • HttpClient的”javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated”异常

    在开发https应用时 你的测试服务器常常没有一个 有效的 SSL证书 在你的客户端连接测试服务器时 如下的异常会被抛出 javax net ssl SSLPeerUnverifiedException peer not authentic
  • CDN方式使用Vue,VantUI组件方式

    代码示例
  • 这个小工具竟然可以让我保持健康

    Part1背景 我有个同事今天跟我说 他总是忘记喝水 这可怎么办 作为程序员的我们 本就每天久坐缺乏锻炼 如果再忘记喝水 那将会带来多么严重的后果 所以我决定为他做一个小工具来提醒他定时喝水 活动 Part2前期准备 1下载依赖软件 pip
  • python 用逐步回归筛选变量

    在回归分析中 影响因变量y的因素很多 而有些自变量的对目标变量y的影响程度不同 为了建立一个相对最优的回归方程 我们需要筛选掉对目标变量y影响不大的变量 这就涉及到了变量选择问题 逐步回归是通过假设检验的方法来筛选强特征 但如果直接用特征变
  • Springboot线上环境彻底关闭Swagger-UI

    文章目录 概要 整体架构流程 技术细节 小结 概要 Springboot线上环境彻底关闭Swagger UI 整体架构流程 1 SwaggerConfig使用 Profile排除线上环境其他环境生效 2 创建一个控制类使用 Profile仅
  • 一、绘制不同类别特征均值标准差直方图

    1 绘制不同类别植被指数均值标准差直方图 数据类型 不同类别样本植被指数 实验目的 1 计算不同类别各指数的均值和标准差 1 1读取表格中的数据 1 2预处理数据 提取不同类别指数 归一化指数 计算均值标准差 1 3画图 import pa
  • fhog资料整理

    fast hog资料整理 https github com joaofaro FHOG https github com ppaanngggg fhog 这个有两种 1 DPM的 Mat tmp image image convertTo
  • 如何读取字符串中的空格

    根据前面的学习 我们可以知道scanf读取到空格 回车 tab会停止读取 后面的内容会交给后面的scanf读取 那么问题来了 我们如何让scanf语句把字符串中的空格也读取呢 在scanf中使用 参数 这个参数的作用就是读取一个字符集合 中
  • Python+Selenium框架篇1-介绍unittest单元测试框架

    本文介绍什么是unittest单元测试框架 1 什么是unittest框架 unittest框架 原名PyUnit框架 是Python语言自带的单元测试框架 Python2 1及其之后的版本已将unittest作为一个标准模块放入Pytho