import time
import allure
import pytest
from selenium import webdriver
from selenium.webdriver.common.by import By
类名标志出测试模块是什么
class TestCeShiRen:
“”"
冒烟测试点:
1*,正常的搜索功能
异常测试点:
1,搜索内容为特殊字符
2,搜索不存在的数据
3,搜索字符超过范围
注意:
===================================
4*,搜索内容为空
===================================
塞入报告,需要使用命令行的方式执行 pytest 文件名 --alluredir=./报告名称
查看报告: allure serve 报告名称
===================================
这里我不会写在出现异常时截图,也就没有代码实现,之前想了能不能用try,但是发现好像有问题
,下面是网上看的但是没看懂,没理解,所以就注释了
"""
# @pytest.hookimpl(tryfirst=True, hookwrapper=True)
# def pytest_runtest_makereport(self, call):
# # execute all other hooks to obtain the report object
# outcome = yield
# rep = outcome.get_result()
#
# # 以下为实现异常截图的代码:
# # rep.when可选参数有call、setup、teardown,
# # call表示为用例执行环节、setup、teardown为环境初始化和清理环节
# # 这里只针对用例执行且失败的用例进行异常截图
# if rep.when == "call" and rep.failed:
# # 检查driver对象是否包含get_screenshot_as_png方法
# if hasattr(self.driver, "get_screenshot_as_png"):
# # get_screenshot_as_png实现截图并生成二进制数据
# # allure.attach直接将截图二进制数据附加到allure报告中
# allure.attach(self.driver.get_screenshot_as_png(), "异常截图", allure.attachment_type.PNG)
# setup_class在类中只执行一次
def setup_class(self):
self.driver = webdriver.Firefox()
# 添加隐式等待:
self.driver.implicitly_wait(3)
# setup在每个测试方法执行前都会执行一次
def setup(self):
self.driver.get("https://ceshiren.com/")
# 后置条件:执行一遍
def teardown_class(self):
self.driver.quit()
# 冒烟测试*:正常搜搜功能
def test_search_1(self):
"""
操作步骤:
1,点击放大镜
2,点击高级搜索功能
3,点击搜索框后输入文本“selenium”
4,点击搜索按钮
5,得到实际结果后与预期结果作比较(assert)
:return:
"""
self.driver.find_element(By.CSS_SELECTOR,'.d-icon-search').click()
self.driver.find_element(By.CSS_SELECTOR,".d-icon-sliders-h").click()
self.driver.find_element(By.CSS_SELECTOR,".full-page-search").click()
self.driver.find_element(By.CSS_SELECTOR,".full-page-search").send_keys("selenium")
self.driver.find_element(By.CSS_SELECTOR,".search-cta").click()
res_element = self.driver.find_element(By.CLASS_NAME,"topic-title")
# 截图操作
self.driver.save_screenshot("image1.png")
# 放入测试报告中
allure.attach.file("image1.png",name="ceshi_1",attachment_type=allure.attachment_type.PNG)
assert "selenium" in res_element.text
# 异常测试点*:输入空文本
def test_search_2(self):
"""
1,点击放大镜
2,点击高级搜索功能
3,点击搜索框后输入空文本
5,点击搜索按钮
5,得到实际结果后与预期结果作比较(assert)
:return:
"""
self.driver.find_element(By.CSS_SELECTOR, '.d-icon-search').click()
self.driver.find_element(By.CSS_SELECTOR, ".d-icon-sliders-h").click()
self.driver.find_element(By.CSS_SELECTOR, ".full-page-search").click()
self.driver.find_element(By.CSS_SELECTOR, ".full-page-search").send_keys("")
self.driver.find_element(By.CSS_SELECTOR, ".search-cta").click()
res_element = self.driver.find_element(By.CSS_SELECTOR,".fps-invalid").text
# 截图操作
self.driver.save_screenshot("image2.png")
# 把截图放入报告中
allure.attach.file("image2.png", name="ceshi_2", attachment_type=allure.attachment_type.PNG)
assert "您的搜索词过短。" == res_element
# 异常测试点:输入为特殊字符
def test_search_3(self):
"""
1,点击放大镜
2,点击高级搜索功能
3,点击搜索框后输入文本“……*&……%……&%¥”
5,点击搜索按钮
5,得到实际结果后与预期结果作比较(assert)
:return:
"""
self.driver.find_element(By.CSS_SELECTOR, '.d-icon-search').click()
self.driver.find_element(By.CSS_SELECTOR, ".d-icon-sliders-h").click()
self.driver.find_element(By.CSS_SELECTOR, ".full-page-search").click()
self.driver.find_element(By.CSS_SELECTOR, ".full-page-search").send_keys("……*&……%……&%¥")
self.driver.find_element(By.CSS_SELECTOR, ".search-cta").click()
res_element = self.driver.find_element(By.CSS_SELECTOR, ".search-advanced").text
# 截图操作
self.driver.save_screenshot("image3.png")
# 把截图放入报告中
allure.attach.file("image3.png", name="ceshi_2", attachment_type=allure.attachment_type.PNG)
assert "找不到结果。" in res_element
# 异常测试点:输入为不存在的数据
def test_search_4(self):
"""
1,点击放大镜
2,点击高级搜索功能
3,点击搜索框后输入文本“程序员如何不掉头发”
5,点击搜索按钮
5,得到实际结果后与预期结果作比较(assert)
:return:
"""
self.driver.find_element(By.CSS_SELECTOR, '.d-icon-search').click()
self.driver.find_element(By.CSS_SELECTOR, ".d-icon-sliders-h").click()
self.driver.find_element(By.CSS_SELECTOR, ".full-page-search").click()
self.driver.find_element(By.CSS_SELECTOR, ".full-page-search").send_keys("程序员如何不掉头发")
self.driver.find_element(By.CSS_SELECTOR, ".search-cta").click()
res_element = self.driver.find_element(By.CSS_SELECTOR, ".search-advanced").text
# 截图操作
self.driver.save_screenshot("image4.png")
# 把截图放入报告中
allure.attach.file("image4.png", name="ceshi_2", attachment_type=allure.attachment_type.PNG)
assert "找不到结果。" in res_element
# 异常测试点:输入字符超出范围还不知道怎么写,不清楚范围是多大怎么样才算超出范围