pytest框架_assert断言

在自动化测试用例中,最常用的断言是相等断言,就是断言预期结果和实际结果是一致的。通常我们断言的预期结果和实际结果的数据类型是字符串、元组、字典、列表和对象。Pytest通过assert和==能够完美支持对这些数据类型的相等断言。下面来介绍几种常见的数据类型的断言操作。

import pytest

def test_01():
	"""
	常用断言
	"""
	assert aa == driver.find_element_by_link_text("新闻").text
    assert "aa" in driver.find_element_by_link_text("新闻").text
    assert "bb" not in driver.find_element_by_id("su").get_attribute("value")
    assert find_element_by_id("cc").is_selected()
    assert find_element_by_id("dd").is_displayed()

"""
【pytest_常用断言】
pytest 里面断言实际上就是 python 里面的 assert 断言方法,常用的有以下几种
assert xx :判断 xx 为真
assert not xx :判断 xx 不为真
assert a in b :判断 b 包含 a
assert a == b :判断 a 等于 b
assert a != b :判断 a 不等于 b


【selenium对元素进行判断:常用这两个】
driver.find_element_by_link_text("新闻").text	获取元素的文本值
driver.find_element_by_id("su").get_attribute("value")		获取元素value属性的值


driver.title	获取页面“title”,百度首页的title是“百度一下,你就知道”
driver.current_url	获取窗口的url
find_element_by_id("xx").is_selected()	判断元素是否被选择
find_element_by_id("kw").is_displayed()		判断元素在页面是否显示

"""

异常断言:
如果我们要断言它抛的异常是不是预期的,比如执行:1/0,预期结果是抛异常:ZeroDivisionError: division by zero,那我们要断言这个异常,通常是断言异常的type和value值了。这里1/0的异常类型是ZeroDivisionError,异常的value值是division by zero,
于是用例可以这样设计:

import pytest
def test_zero_division():
	"""
	断言异常
	"""
    with pytest.raises(ZeroDivisionError) as excinfo:
        1 / 0
    assert excinfo.type == ZeroDivisionError
    assert "division by zero" in str(excinfo.value)

	"""
	断言2
	"""
	try:
      login = driver.find_element_by_name("tj_login")
    except ElementNotVisibleException:
      raise 

断言举例:

def test_assertion():
    assert [1, 2, 3] == [1, 2, 4], "left is [1,2,3], right is [1,2,4]"


test_2.py::test_assertion ---进入要执行模块的的界面---
FAILED

================================== FAILURES ===================================
_______________________________ test_assertion ________________________________

    def test_assertion():
>       assert [1, 2, 3] == [1, 2, 4], "left is [1,2,3], right is [1,2,4]"
E       AssertionError: left is [1,2,3], right is [1,2,4]
E       assert [1, 2, 3] == [1, 2, 4]
E         At index 2 diff: 3 != 4
E         Full diff:
E         - [1, 2, 4]
E         ?        ^
E         + [1, 2, 3]
E         ?        ^

test_2.py:15: AssertionError
--------- generated html file: file://D:\se_frame\Reports\report.html ---------
=========================== short test summary info ===========================
FAILED test_2.py::test_assertion - AssertionError: left is [1,2,3], right is ...
============================== 1 failed in 9.49s ==============================

Process finished with exit code 0

猜你喜欢

转载自blog.csdn.net/weixin_45451320/article/details/113926498