目录
前言:
1. Allure测试报告简介
2. Web自动化测试框架简介
3. 封装Web自动化框架
3.1 安装Selenium
3.2 封装Selenium
3.3 定制Allure测试报告
3.3.1 适配翻译插件
3.3.2 定制测试报告样式
4. 示例代码
5. 总结
前言:
随着现在Web应用的普及,越来越多的企业开始将业务线上化,Web应用也成为了企业中必不可少的一部分。随着Web应用的增多,Web自动化测试框架也愈发重要。今天我将为大家介绍一下如何使用Allure测试报告来定制Web自动化测试框架。
1. Allure测试报告简介
Allure测试报告是由Yandex公司开发的一款开源测试框架,它提供了非常丰富的信息和交互式操作来展示测试结果。Allure测试报告可以提供如下特点:
- 集成多种测试框架:Allure支持JUnit、TestNG等多种测试框架;
- 可视化测试结果:Allure测试报告提供了交互式的测试结果展示方式,易于测试人员查看和理解;
- 定制测试报告:Allure测试报告支持用户自定义模板,可以根据需求自由定制测试报告。
2. Web自动化测试框架简介
Web自动化测试框架是一些工具和库的集合,用于自动化测试Web应用程序。这些框架可以帮助测试人员快速构建可重用的测试脚本。
常用的Web自动化测试框架有如下几种:
- Selenium:一个基于浏览器自动化的框架,可以模拟用户行为对Web应用程序进行自动化测试;
- RobotFramework:一个开源的自动化测试框架,支持Python编写测试脚本;
- Cucumber:一个BDD(行为驱动开发)测试框架,用自然语言方式定义测试用例。
3. 封装Web自动化框架
在测试Web应用程序时,我们可以使用上述框架来编写测试脚本。但是为了实现定制化的测试报告,需要对测试框架进行封装。下面以Python语言为例来对Selenium进行封装。
3.1 安装Selenium
首先需要安装Selenium,可以使用pip命令进行安装:
pip install selenium
3.2 封装Selenium
接下来进行Selenium的封装。首先,我们新建一个selenium_driver.py文件,用于初始化WebDriver,并定义一些常用的操作。
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
class SeleniumDriver:
def __init__(self, driver_path, headless=False):
"""
:param driver_path: WebDriver的路径
:param headless: 是否无头模式
"""
chrome_options = Options()
if headless:
chrome_options.add_argument('--headless')
self.driver = webdriver.Chrome(executable_path=driver_path, options=chrome_options)
def get(self, url):
self.driver.get(url)
def find_element(self, locator):
"""
:param locator: 元素定位,示例:'css selector', 'body'
"""
return self.driver.find_element(*locator)
def close(self):
self.driver.quit()
在上述代码中,SeleniumDriver类封装了Selenium的WebDriver,并提供了常用的Web操作方法。
3.3 定制Allure测试报告
接下来,我们需要对Allure测试报告进行定制。首先,我们新建一个allure_report.py文件,用于自定义Allure测试报告。
Allure测试报告支持用户自定义模板,我们可以根据需求自由定制测试报告。下面介绍几个常见的测试报告模板。
3.3.1 适配翻译插件
在Allure测试报告中添加翻译插件可以使报告支持多语言,提高测试报告的可读性和可访问性。
方法一:
安装allure-pytest和allure-pytest-translations两个库:
pip install allure-pytest
pip install allure-pytest-translations
接下来,我们在pytest.ini文件中添加如下配置:
[pytest]
addopts = -v –capture=no –alluredir=./result –clean-alluredir
testpaths = ./tests/
python_files = test_*.py
python_classes = Test*
python_functions = test_*
cache_dir = ./.pytest_cache
[allure]
language = zh
plugins = i18n,pytester
其中,language参数用于定义测试报告的语言,plugins参数指定使用哪些插件。
方法二:
在allure.yml文件中添加如下配置:
# Langauge settings
language: en
#plugins settings
plugins:
- i18n
- junit
- summary
在pytest.ini文件中添加如下配置:
[pytest]
addopts = -v –capture=no –alluredir=./result –clean-alluredir
testpaths = ./tests/
python_files = test_*.py
python_classes = Test*
python_functions = test_*
cache_dir = ./.pytest_cache
[allure]
config_file = ./allure.yml
3.3.2 定制测试报告样式
除了支持多语言,在Allure测试报告中还可以定制报告样式。我们可以通过编写CSS文件来定制测试报告。
首先,新建一个allure.css文件,定义测试报告的样式。例如:
/* 自定义测试报告主题 */
body {
background-color: #F8F8F8;
color: #000000;
}
接下来,我们在pytest.ini文件中添加如下配置:
[pytest]
addopts = -v –capture=no –alluredir=./result –clean-alluredir
testpaths = ./tests/
python_files = test_*.py
python_classes = Test*
python_functions = test_*
cache_dir = ./.pytest_cache
[allure]
# 使用自定义的CSS样式
extra_css = ./allure.css
通过上述操作,我们完成了定制化Allure测试报告的工作。
4. 示例代码
下面是一个示例代码,演示如何对Selenium进行封装,并使用Allure测试报告定制Web自动化测试框架。
import allure
from selenium.webdriver.common.by import By
from selenium_driver import SeleniumDriver
class TestBaidu:
def setup_method(self):
self.driver = SeleniumDriver('chromedriver.exe', headless=False)
self.driver.get('https://www.baidu.com')
def teardown_method(self):
self.driver.close()
@allure.step('在搜索框输入关键字:{1},点击搜索按钮')
def baidu_search(self, keyword):
self.driver.find_element((By.ID, 'kw')).send_keys(keyword)
self.driver.find_element((By.ID, 'su')).click()
@allure.title('测试百度首页搜索功能')
def test_baidu_search(self):
with allure.step('输入关键字:Allure Report'):
self.baidu_search('Allure Report')
with allure.step('验证搜索结果页面是否存在指定元素'):
assert self.driver.find_element((By.PARTIAL_LINK_TEXT, 'allure.qatools.ru')) is not None
在上述代码中,我们使用了SeleniumDriver来初始化WebDriver,并定义了封装后的测试用例。在测试用例中,我们使用了Allure测试报告的@step和@title装饰器来自定义测试报告。
5. 总结
本文介绍了如何使用Allure测试报告来定制Web自动化测试框架。通过定制化测试报告,我们可以更加清晰地展示测试结果,并提高测试报告的可读性和可访问性。同时,还介绍了如何对Selenium进行封装,使测试脚本更加易于编写和维护。
作为一位过来人也是希望大家少走一些弯路,在这里我给大家分享一些自动化测试前进之路的必须品,如果你用得到的话可以直接拿走,希望能对你带来帮助。(WEB自动化测试、app自动化测试、接口自动化测试、自动化测试开发、大厂面试真题、简历模板等等),相信能使你更好的进步!
方式:留【自动化测试】即可
【自动化测试交流】:574737577(备注ccc)http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=yTky89vp61ak2ySZMOHqFKs3cy63KNdR&authKey=CdUemWSkJDENrUBUAj1JFqz5RQ4ov6MKoYzfjSJmLZ9Ot656Xl857XpyxrFO6OI5&noverify=0&group_code=574737577