4月12日web自动化训练营第二天作业

测试代码
根据测试用例,进行测试

1.冒烟用例:test_search
2.测试输入为空:test_search_null
3.测试输入特殊字符:test_search_character
4.测试输入不存在的数据:test_search_nothingness
5.测试输入超长字符:test_search_boundary

import allure
from selenium import webdriver
from selenium.webdriver.common.by import By

class TestCeshiren:
# 前置
def setup_class(self):
self.driver = webdriver.Chrome()
# 配置隐式等待,最长等待时间5秒
self.driver.implicitly_wait(5)
def setup(self):
# 打开ceshiren网站
self.driver.get(‘https://ceshiren.com/’)
# 后置
def teardown_class(self):
self.driver.quit()

# 冒烟用例,搜索正向功能的正确性
def test_search(self):
    '''
    测试步骤
    1.打开ceshiren网站
    2.点击首页的搜索按钮
    3.点击高级搜索按钮
    4.输入搜索信息
    5.点击搜索
    6.断言搜索的信息和内容是相关的
    '''
    # 点击首页的搜索按钮
    self.driver.find_element(By.CSS_SELECTOR,".search-dropdown").click()
    # 点击高级搜索按钮,跳转到高级搜索页面
    self.driver.find_element(By.CSS_SELECTOR,".searching").click()
    # 定位到搜索框输入要搜索的数据 selenium
    self.driver.find_element(By.CSS_SELECTOR,".search-query").send_keys("selenium")
    # 定位到搜索按钮并点击
    self.driver.find_element(By.CSS_SELECTOR,".search-cta").click()
    # 断言,根据搜索信息,定位到搜索到的标签,判断是否和搜索的结果相同
    res_text = self.driver.find_element(By.CSS_SELECTOR,".search-link").text
    # 截图
    self.driver.save_screenshot("search.png")
    # 上传图片
    allure.attach.file("search.png",name="冒烟测试",attachment_type=allure.attachment_type.PNG)
    assert "selenium" in res_text

# 测试搜索输入为空
def test_search_null(self):
    '''
    测试步骤
    1.打开ceshiren网站
    2.点击首页的搜索按钮
    3.点击高级搜索按钮
    4.输入一个为空的搜索信息
    5.点击搜索
    6.断言
    '''
    # 点击首页的搜索按钮
    self.driver.find_element(By.CSS_SELECTOR, ".search-dropdown").click()
    # 点击高级搜索按钮,跳转到高级搜索页面
    self.driver.find_element(By.CSS_SELECTOR, ".searching").click()
    # 定位到搜索框,输入为空
    self.driver.find_element(By.CSS_SELECTOR, ".search-query").send_keys("")
    # 定位到搜索按钮并点击
    self.driver.find_element(By.CSS_SELECTOR, ".search-cta").click()

    # 断言,根据搜索信息,定位到提示标签
    res_text = self.driver.find_element(By.CSS_SELECTOR, ".fps-invalid").text
    # 对运行结果进行截图操作
    self.driver.save_screenshot("search_null.png")
    # allure.attach.file(文件名称,name=起的名字,attachment_type=文件的类型)
    allure.attach.file("search_null.png",name="输入为空",attachment_type=allure.attachment_type.PNG)
    # 塞入报告:使用命令行的方式进行 pytest test_ceshiren --alluredir = ./report
    #                                 (test_ceshiren 文件名)      (./report执行文件路径)
    # 查看报告 allure serve report/ (报告名称)
    assert res_text == "您的搜索词过短。"

# 测试搜索特殊字符
def test_search_character(self):
    '''
    测试步骤
    1.打开ceshiren网站
    2.点击首页的搜索按钮
    3.点击高级搜索按钮
    4.输入特殊字符
    5.点击搜索
    6.断言
    '''
    # 点击首页的搜索按钮
    self.driver.find_element(By.CSS_SELECTOR, ".search-dropdown").click()
    # 点击高级搜索按钮,跳转到高级搜索页面
    self.driver.find_element(By.CSS_SELECTOR, ".searching").click()
    # 定位到搜索框,输入特殊字符
    self.driver.find_element(By.CSS_SELECTOR, ".search-query").send_keys("$%#&*")
    # 定位到搜索按钮并点击
    self.driver.find_element(By.CSS_SELECTOR, ".search-cta").click()

    # 断言,根据搜索信息,定位到提示标签
    res_text = self.driver.find_element(By.CSS_SELECTOR, ".ember-view h3").text
    # 对运行结果进行截图操作
    self.driver.save_screenshot("search_character.png")
    # allure.attach.file(文件名称,name=起的名字,attachment_type=文件的类型)
    allure.attach.file("search_character.png", name="输入特殊字符", attachment_type=allure.attachment_type.PNG)
    # 塞入报告:使用命令行的方式进行 pytest test_ceshiren --alluredir = ./report
    #                                 (test_ceshiren 文件名)      (./report执行文件路径)
    # 查看报告 allure serve report/ (报告名称)
    assert res_text == "找不到结果。"

# 测试搜索不存在的字符
def test_search_nothingness(self):
    '''
    测试步骤
    1.打开ceshiren网站
    2.点击首页的搜索按钮
    3.点击高级搜索按钮
    4.输入不存在的字符
    5.点击搜索
    6.断言
    '''
    # 点击首页的搜索按钮
    self.driver.find_element(By.CSS_SELECTOR, ".search-dropdown").click()
    # 点击高级搜索按钮,跳转到高级搜索页面
    self.driver.find_element(By.CSS_SELECTOR, ".searching").click()
    # 定位到搜索框,输入不存在的字符
    self.driver.find_element(By.CSS_SELECTOR, ".search-query").send_keys("了凡四训")
    # 定位到搜索按钮并点击
    self.driver.find_element(By.CSS_SELECTOR, ".search-cta").click()

    # 断言,根据搜索信息,定位到提示标签
    res_text = self.driver.find_element(By.CSS_SELECTOR, ".ember-view h3").text
    # 对运行结果进行截图操作
    self.driver.save_screenshot("search_nothingness.png")
    # allure.attach.file(文件名称,name=起的名字,attachment_type=文件的类型)
    allure.attach.file("search_nothingness.png", name="输入特殊字符", attachment_type=allure.attachment_type.PNG)
    # 塞入报告:使用命令行的方式进行 pytest test_ceshiren --alluredir = ./report
    #                                 (test_ceshiren 文件名)      (./report执行文件路径)
    # 查看报告 allure serve report/ (报告名称)
    assert res_text == "找不到结果。"

 # 测试内容超长的边界值
def test_search_boundary(self):
    '''
    测试步骤
    1.打开ceshiren网站
    2.点击首页的搜索按钮
    3.点击高级搜索按钮
    4.输入内容超长的边界值 4
    5.点击搜索
    6.断言
    '''
    # 点击首页的搜索按钮
    self.driver.find_element(By.CSS_SELECTOR, ".search-dropdown").click()
    # 点击高级搜索按钮,跳转到高级搜索页面
    self.driver.find_element(By.CSS_SELECTOR, ".searching").click()
    # 定义要搜索的超长字符串
    boundary = '“The Selenium Browser Automation Project” The Selenium Browser Automation Project Selenium is an umbrella project for a range of tools and libraries that enable and support the automation of'
    # 定位到搜索框,输入内容超长的边界值
    self.driver.find_element(By.CSS_SELECTOR, ".search-query").send_keys(boundary)
    # 定位到搜索按钮并点击
    self.driver.find_element(By.CSS_SELECTOR, ".search-cta").click()

    # 断言,根据搜索信息,定位到提示标签
    res_text = self.driver.find_element(By.CSS_SELECTOR, ".fps-result-entries").text
    # 对运行结果进行截图操作
    self.driver.save_screenshot("search_boundary.png")
    # allure.attach.file(文件名称,name=起的名字,attachment_type=文件的类型)
    allure.attach.file("search_boundary.png", name="最大边界值搜索", attachment_type=allure.attachment_type.PNG)
    # 塞入报告:使用命令行的方式进行 pytest test_ceshiren --alluredir = ./report
    #                                 (test_ceshiren 文件名)      (./report执行文件路径)
    # 查看报告 allure serve report/ (报告名称)
    assert boundary in res_text