介绍
* allure是开源测试报告框架,支持pytest单元测试框架
* 集成简单
* allure可以使用jenkins持续集成工具
配置allure环境
【1】安装allure-pytest库文件
【2】下载allure压缩包
Releases · allure-framework/allure2 · GitHub
解压后配置环境变量 --- cmd命令行里面可以使用allure命令
解压完成放到没有中文的目录下
环境变量:
系统变量 (path)里面
新建 粘贴allure.bat文件所在的路径 //如果是一行显示,需要在路径前后+英文状态下 ;
【3】验证
cmd ---> allure --version //可能需要重启pycharm或者电脑 在pycharm的命令行使用allure指令
结合selenium 使用
allure 案例
场景:测试百度搜索及搜索词条
步骤:
* 1.打开浏览器 ---- 多个测试用例函数打开一次(setup_class 或者 fixture注解使用)
* 2.打开百度
* 3.输入关键词
* 4.点击百度一下
* 5.点击超链接
* 6.输入词条
* 7.点击搜索词条
import pytest
from selenium import webdriver
from time import sleep
@pytest.fixture(scope = 'class')
def openBrowser():
driver = webdriver.Chrome()
driver.maximize_window()
driver.implicity_wait(30)
return driver
@allure.feature('测试百度搜索模块') //模块
class TestBaidu:
@allure.story('百度搜索功能') //子功能
@allure.title('用例标题')
def test_baidu(self,openBrowser=webdriver.Chrome()): //openBrowser=webdriver.Chrome() 不写没有提示 ,完事后删点
#打开百度
with allure.step('打开百度'): //测试步骤
driver.get('https://www.baidu.com')
driver.find_element_by_id('kw').clear()
driver.find_element_by_id('kw').send_keys('林志玲')
driver.find_element_by_id('su').click()
driver.find_element_by_partial_link_text('百度百科').click()
windows = driver.window_handles //获取所有窗口
driver.switch_to.window(windows[-1]) //获取最新的窗口
driver.find_element_by_id('query').clear()
driver.find_element_by_id('query').send_keys('高圆圆')
driver.find_element_by_id('su').click()
sleep(5)
@allure.story(‘测试腾讯’)
@allure.serverity(allure.serverity_level.BLOCKER) //用例级别
def test_qq(self,openBrowser = webdriver.Chrome()): //完事后删除 webdriver.Chrome()
driver = openBrowser
#打开qq页面
with allure.step('打开qq'):
driver.get('https://www.qq.com')
sleep(2)
allure.attach(body='说明',name='名称',attachment_type=allure.attac
hment_type.TEXT)
if '腾讯首页' == driver.title:
driver.get_screenshot_as_file('./screen_shot/chenggong.png')
allure.attach.file(source='./screen_shot/chenggong.png',name=成功截 图,attachment_type=allure.attachment_type.png)
//source='源文件',name=显示名称,attachment_type=文件类型
else:
#附加信息
allure.attach(body='身体',name='名称',attachment_type=allure.attac
hment_type.TEXT)
allure 基本特性
* @allure.step(“测试步骤”) ----引用某个函数作为操作步骤的时候使用
with allure.step(): ---- 写在测试用例函数里面
pass
* 添加文本说明或者附件
*@allure.testcase(url='https://www.baidu.com',name='用例链接显示的名称')
*@allure.issue(url='https://www.baidu.com',name='bug管理平台')
*@allure.attach(bady,name.attachment_type) //附加文件信息
*@allure.attach.file(source='源文件',name=显示名称,attachment_type=文件类型)
补充:
@allure.epic //史诗,第一级
@allure.feature //特性 第二级
@allure.story // 用户故事 第三级
@allure.title //标题,第四级
@allure.severity //用例的优先级
blocker,critical,normal,minor,trivial
@allure.testcase //用例的链接地址
@allure.description //用例的描述
@allure.issue //用例对应缺陷的链接
@allure.link
@allure.aynamic.title() //动态的设置标题
配置文件
新建文件 pytest.ini
[pytest]
addopts = -v -s -q --alluredir ./report/json //指定allure 报告所需json 数据的文件夹
testpaths = ./
python_files = test_*.py
python_classes = Test*
python_functions = test_*
生成测试报告
* 1. pytest //执行 --alluredir 制定allure报告所需json数据的文件夹
* 2.allure generate ./json -o ./report --clean //生成测试报告
* 3.allure open report --host 192.168.1.165 --port 8800 //打开报告 host = 本机ip
注意:多次打开后,出现有缓存情况 可以通过手动输入IP:端口号 进行打开
补充:
allure serve ./report //打开报告
--alluredir //生成报告
'--allure-severities','blocker' 按照用例级别执行用例
[pytest]
markers=run //解除警告