测试用例管理与测试报告
环境准备:pytest / allure /python / pycharm
完成一个基本的用例结构
功能测试用例基本结构
- 用例模块
- 用例标题
- 前提条件
- 用例步骤
- 用例优先级(选择)
- 预期结果
- 实际结果
- 自动化测试的用例结构和功能测试保持一致。
- 自动化测试框架的命名规则
功能测试 | 对应自动化测试框架 | 测试报告 | 自动化测试规则 |
---|---|---|---|
用例模块 | 测试文件、测试类 | test_ 开头或者 Test | |
用例标题 | 测试方法/函数 | test_ 开头 | |
前提条件 | setup_method() 方法 | setup_method() | |
用例步骤 | 对应测试方法里面的实现内容 | with allure.step(“测试步骤操作”) | 按照功能测试实现 |
用例优先级(选择) | @pytest.mark.p1 |
Tags | 执行的时候需要使用 -m=“标签名称” |
预期结果 | assert 实际结果 == 预期结果 | 直接体现 | 断言 |
实际结果 |
生成一个测试报告
# pytest 测试文件名称 制定测试报告生成路径 -m 表示指定用例执行
pytest test_ceshiren2.py --alluredir=result3 -m=p1
# allure 执行 上面生成的测试报告数据,生成一个测试报告服务进行查看
allure serve result3
相关源码
"""
1. 用例模块
1. 用例标题
1. 前提条件
1. 用例步骤
1. 用例优先级(选择)
1. 预期结果
1. 实际结果
"""
import allure
import pytest
# 1. 用例模块
# 类名: Test 大写开头
class TestCeshiren:
# 前提条件: 在每个用例执行之前执行
def setup_method(self):
pass
# test_ 开否
# 用例标题
@pytest.mark.p2
@allure.title("查找成功的测试")
def test_search(self):
a = 1
# 用例步骤
with allure.step("打开测试页面"):
print("操作 1")
with allure.step("进入搜索页面"):
print("操作 2")
with allure.step("输入有记录的搜索关键字比如Appium"):
print("操作 3")
with allure.step("获取搜索结果"):
print("操作 3")
# 判断实际结果和预期结果是否相等
assert a == 1
# 用例2
# 用例优先级
@pytest.mark.p1
@allure.title("查找失败的异常场景测试")
def test_search_fail(self):
act = 1
expect = 2
assert act == expect
自动化测试
- 安装 selenium
- 谷歌浏览器或者Firefox 浏览器。
- 配置对应的浏览器驱动
import time
import allure
import pytest
from selenium import webdriver
from selenium.webdriver.common.by import By
# 1. 用例模块
# 类名: Test 大写开头
class TestCeshiren:
# 前提条件: 在每个用例执行之前执行
def setup_method(self):
pass
# test_ 开否
# 用例标题
@pytest.mark.p2
@allure.title("查找成功的测试")
def test_search(self):
# 初始化浏览器,获得一个浏览器对象
driver = webdriver.Chrome()
# 用例步骤
with allure.step("打开测试人主页"):
# 调用浏览器对象的打开网页方法
driver.get("https://ceshiren.com/")
# 强制等待
time.sleep(1)
with allure.step("进入搜索页面"):
# 获取页面元素对象
driver.find_element(By.ID, "search-button").click()
driver.find_element(By.CLASS_NAME, "searching").click()
with allure.step("输入有记录的搜索关键字比如Appium"):
driver.find_element(By.CSS_SELECTOR, "[placeholder='搜索']").send_keys("Appium")
driver.find_element(By.CSS_SELECTOR, ".search-bar button").click()
time.sleep(1)
with allure.step("获取搜索结果"):
res = driver.find_element(By.CSS_SELECTOR, ".topic-title").text
# 截图
driver.get_screenshot_as_file("截图.png")
# 把截图结合到测试报告中
allure.attach.file("截图.png",
name = "图片",
attachment_type = allure.attachment_type.PNG,
extension = "png")
# 判断实际结果和预期结果是否相等,判断获取到的文本中是否包含appium
assert "appium" in res
# 用例2
# 用例优先级
@pytest.mark.p1
@allure.title("查找失败的异常场景测试")
def test_search_fail(self):
act = 1
expect = 2
assert act == expect