首页 > 其他分享 >selenium(8)断言,unittest

selenium(8)断言,unittest

时间:2024-03-27 10:35:30浏览次数:21  
标签:断言 unittest selenium 测试 test self 测试方法

Selenium中的断言用于验证应用程序的状态是否与所期望的一致。

在使用Selenium进行自动化测试时,断言通常用于以下方面:

  • 页面属性断言:断言标题、URL或页面源码中是否包含或不包含特定字符。这是最常用的断言方式,可以用来断言页面是否正常打开,是否在指定的窗口及页面上。
  • 元素存在断言:断言指定元素是否存在。这可以通过try...except捕获并抑制元素定位不到的异常,或者使用find_elements+判断返回的元素列表是否为空来实现。
  • 图片及链接断言:断言图片正常显示、链接可以正常打开

Selenium提供了三种模式的断言:assert、verify和waitfor。

  1. Assert:当Assert失败时,该测试将终止。
  2. Verify:当Verify失败时,该测试将继续执行,并将错误记入日志显示屏。也就是说,允许此单个验证通过。
  3. Waitfor:用于等待某些条件变为真。这可以用于AJAX应用程序的测试。如果该条件为真,它们将立即成功执行。如果该条件不为真,则将失败并暂停测试,直到超过当前所设定的超时时间。

在Python中使用Selenium进行自动化测试时,Assert断言是一个非常重要的工具,用于验证页面元素的状态、属性和行为是否符合预期。如果断言失败,测试将抛出AssertionError异常,并且测试将终止。

Selenium本身并不直接提供断言方法,但Python的标准库中的unittest模块提供了丰富的断言方法。以下是如何在Python Selenium测试脚本中使用unittest模块中的Assert断言的示例:

首先,你需要导入unittest模块,并在你的测试类中继承unittest.TestCase。然后,你可以使用unittest提供的各种断言方法。

unittest是Python单元测试框架

 

1.test fixture(测试固件):存了类里面固定的方法,初始化和清理测试环境,比如创建临时的数据库,文件和目录等
2.test case:单元测试用例,TestCase 是编写单元测试用例最常用的类
3.test suite(测试套件):把测试方法放到容器里,单元测试用例的集合,TestSuite 是最常用的类
4.test runner:执行单元测试
5.test report:生成测试报告
测试固件:

测试固件是在测试运行之前和之后执行的一系列操作,用于准备测试所需的环境,以及在测试完成后清理这些环境。

unittest框架中,测试固件主要通过以下三个方法来实现:

  1. setUp(): 每个测试方法执行前都会调用此方法。它通常用于初始化测试环境,比如启动浏览器、打开网页等。

  2. tearDown(): 每个测试方法执行后都会调用此方法。它通常用于清理测试环境,比如关闭浏览器窗口、断开数据库连接等。

  3. setUpClass() 和 tearDownClass(): 这两个方法分别在测试类中的所有测试方法执行之前和之后调用一次。它们通常用于执行更耗时的操作,如启动和关闭整个浏览器实例,而不是每个测试方法都启动和关闭。

unittest中测试用例方法都是以test开头的,否则不被unittest识别,执行顺序根据(0-9,A-Z,a-z),如:test01,testaa

 测试步骤:

1. 导入unittest模块

2. 创建一个测试类,并继承unittest.TestCase()

3. 定义测试方法,方法名必须以test_开头,否则不会被检测

4. 调用unittest.main()方法来运行测试用例,unittest.main()方法会搜索该模块下所有以test开头的测 试用例方法,并自动执行

5. 每一个用例执行的结果的标识,OK OR FALSE

例子:

import time
import unittest
from selenium import webdriver

class assert_testTest(unittest.TestCase):
@classmethod
def setUpClass(cls) -> None :
cls.driver=webdriver.Chrome()
cls.driver.implicitly_wait(10)
cls.driver.get('http://www.huangjinjiage.cn/talk/20211208/13752.html')
cls.driver.maximize_window()
time.sleep(3)
print('setUpClass所有测试方法执行之前执行一次')

@classmethod
def tearDownClass(cls) -> None:
cls.driver.quit()
print('tearDownClass所有测试方法之后调用一次')

def setUp(self) -> None:
print('setUp每个测试方法执行前可以进行的操作')
self.driver.refresh()

def tearDown(self) -> None:
print('tearDown每个测试方法执行后可以进行的操作')

def haha(self):
print('方法,名不带test不会被执行')

def test_gold_title_false(self):
a = self.driver.title
b = '中国黄金'
self.assertEqual(a, b, '页面标题,不正确')
print('具体测试方法1')

def test_gold_title(self):
a=self.driver.title
b='中国黄金'
self.assertNotEqual(a,b,'页面标题不正确')
print('具体测试方法2')

def test_gold_url(self):
a=self.driver.current_url
b='http://www.huangjinjiage.cn/talk/20211208/13752.html'
self.assertEqual(a,b,'url不对')
print('具体测试方法3')


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


 



 

标签:断言,unittest,selenium,测试,test,self,测试方法
From: https://www.cnblogs.com/cyq0528/p/18098350

相关文章

  • Selenium报错ElementNotInteractableException元素不可交互,该如何解决?
    简介在使用Selenium进行Web自动化测试时,我们可能会遇到各种异常情况。其中之一就是ElementNotInteractableException异常,这通常意味着在尝试与页面元素交互时出现了问题。本文将详细介绍这个异常的原因、可能的解决方法,并提供示例代码来帮助你更好地理解和处理这种情况。......
  • Selenium 控制浏览器操作
    Selenium控制浏览器方法操作使用场景实现代码get打开浏览器web测试第一步driver.get(url)refresh刷新浏览器模拟刷新浏览器driver.refresh()back回退浏览器模拟回退步骤driver.back()maxmize_window最大化浏览器......
  • Selenium Web控件定位
    web控件定位方法描述方式CLASS_NAMEclass属性对应的值driver.find_element(By.CLASS_NAME,"navbar-anonymous")CSS_SELECTORcss表达式driver.find_element(By.CSS_SELECTOR,".active.keyword")IDid属性对应的值driver.find_element......
  • Selenium 等待
    等待在测试中,添加等待是为了避免页面为渲染完成时操作导致错误等待分为三种:强制等待隐式等待显式等待类型使用方法原理适用场景直接等待time.sleep()强制线程休眠调试代码,临时添加隐式等待driver.implicitly_wait()......
  • selenium下载安装
    Selenium简介官网:https://www.selenium.dev/用于web浏览器测试的工具支持的浏览器包括IE、Firefox、Safari、Chrome、Edge等使用简单,可使用Java、Python编写脚本三个工具构成:WebDriver、IDE、GridPython安装SeleniumpipinstallseleniumDriver......
  • 11.测试教程-自动化测试selenium-3
    文章目录1.unittest框架解析2.批量执行脚本2.1构建测试套件2.2用例的执行顺序2.3忽略用例执行3.unittest断言4.HTML报告生成5.异常捕捉与错误截图6.数据驱动大家好,我是晓星航。今天为大家带来的是自动化测试selenium第三节相关的讲解!......
  • 【旅游景点项目日记 | 第二篇】基于Selenium爬取携程网景点详细数据
    文章目录3.基于Selenium爬取携程网景点详细数据3.1前提环境3.2思路3.3代码详讲3.3.1查询指定城市的所有景点3.3.2获取详细景点的访问路径3.3.3获取景点的详细信息3.4数据库设计3.5全部代码3.6效果图3.基于Selenium爬取携程网景点详细数据3.1前提环境确保安装pytho......
  • 使用selenium轻松实现元素拖拽
    前言在进行Web自动化测试或实现用户交互功能时,模拟元素的拖拽操作是一项常见的需求。通过Selenium,一种流行的Web自动化测试工具,我们可以轻松地实现这一功能,使得测试和用户交互更加真实和高效。元素拖拽功能的重要性在许多Web应用程序中,用户可以通过拖拽操作来调整页面布局、拖......
  • 使用Selenium模拟鼠标滚动操作的技巧
    前言在进行Web自动化测试或数据抓取时,模拟用户操作是至关重要的。其中之一就是模拟鼠标滚动操作,这在许多情况下都是必需的。使用Selenium,一种流行的Web自动化测试工具,可以轻松实现这一功能。模拟鼠标滚动的重要性网页内容可能会因为需要用户滚动才能加载而延迟显示,或者是在滚......
  • python中的unittest使用介绍
    unittest 是Python标准库中的一个模块,用于编写和运行单元测试。它提供了一个框架,让开发者可以轻松地编写测试用例、组织测试套件以及执行测试。下面是一个简单的示例,演示如何使用 unittest 模块:importunittestdefadd(a,b):returna+bclassTestAddFunction(un......