在自动化测试用例中,最常用的断言是相等断言,就是断言预期结果和实际结果是一致的。通常我们断言的预期结果和实际结果的数据类型是字符串、元组、字典、列表和对象。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