具体步骤如下:
只筛选了一条测试用例,代码如下:
run.py代码如下:
import pytest
pytest.main(['-m', 'success', '--alluredir=output'])
运行结果:
可以看到生成了output目录
在对应的项目目录下执行命令allure serve output,就会自动开启allure服务,打开测试报告
报告内容如下:
修改测试用例代码如下:
from data.login_data import login_success, login_fail_list
import pytest
import allure
# 修改测试套件/集合的名称
@allure.suite("登录功能")
class TestSignIn:
@pytest.mark.parametrize('login_fail', login_fail_list)
def test_sing_in_failed(self, login_fail, login_page):
"""测试登录失败"""
# 数据
username = login_fail['username']
password = login_fail['password']
expected = login_fail['expected']
# 获取实际结果
login_page.load()
login_page.login(username, password)
actual = login_page.get_error_tips()
# 断言
assert expected == actual
# 修改测试用例的名称
@allure.title("测试用例标题:登录成功")
@pytest.mark.success
def test_sing_in_success(self, login_page, home_page):
"""测试登录成功"""
# 数据
username = login_success['username']
password = login_success['password']
expected = login_success['expected']
# 获取实际结果
# 修改测试步骤的名称
with allure.step('登录'):
login_page.load()
login_page.login(username, password)
# 通过selenium进行截图
img = login_page.browser.get_screenshot_as_png()
allure.attach(body=img, name='登录截图', attachment_type=allure.attachment_type.PNG)
# 通过文件来获取截图
# allure.attach.file('demo.png', name='登录截图', attachment_type=allure.attachment_type.PNG)
# 断言
# 断言登录后的url
with allure.step('首页'):
assert home_page.is_loaded()
img_home = login_page.browser.get_screenshot_as_png()
allure.attach(body=img_home, name='首页截图', attachment_type=allure.attachment_type.PNG)
# 断言登录后的用户名称
assert home_page.get_username() == expected
运行run.py后,执行命令allure serve output,报告显示如下
通常登录成功的无需截图,只有登录失败报错了需要截图,这只是个例子,具体需不需要取决自己
开启jenkins服务(如何设置具体可以参考此篇文章jenkins介绍与使用_晒不黑的黑煤球的博客-CSDN博客),登录后,新建一个item
先不用设置任何内容直接保存,保存后进行一次构建
打开workspace,可以看到刚刚我们新建的item
把我们要进行自动化的代码手工复制到此目录下(我这里模拟的是本地操作代码,工作中通常还是通过git来进行下载代码)
安装allure插件
进行allure设置:点击【Manage Jenkins】--> 【Global Tool Configuration】
点击【Allure Commandline 安装】-->设置名称,选择版本,点击保存即可
打开要设置的项目,点击配置-->增加构建后操作步骤-->选择【Allure Report】-->设置路径
设置完毕后,可以看到显示了Allure Report 按钮
最后,点击【Build Now】进行构建,构建成功后可以点击查看allure报告
总结在jenkins设置allure报告的步骤:
我们现在这么执行是在jenkins的服务机上操作的,但在实际工作中,jenkins肯定不会安装在自己本地,多数是安装的服务器上,服务器上安装的linux系统,这样我们想跑web自动化代码就比较麻烦,因为需要通过命令行安装浏览器,才能进行操作
问题一:浏览器不是可视化界面,没办法看到页面,问题二:在linux系统上执行web自动化代码,看不出来效果,因为截图不到页面,不知道哪里出问题,问题三:占用CPU内存比较高
所以 web自动化测试可以使用主从模式来进行测试
主从模式:
说白了就是把构建任务分发到多个从节点去执行,可以方便进行web自动代测试,可以提高支撑起多个项目的大量构建任务等
一台服务器:一个人 slave奴隶
节点
发配任务:master 主人
master/slave
分布式
jenkins服务:注册节点,给项目下达任务
其他的节点:执行任务
jenkins和其他节点,进行通信
点击【Manage Jenkins】--> 【Manage Nodes and Clouds】
点击 【新建节点】-->输入节点名称,勾选按钮,点击确定
确定后,进入详情设置:设置Number of executors,远程工作目录,标签,勾选Use WebSocket
Number of executors 主要看slave的电脑(强度大小)cpu的核数,核数是几就设置几,远程工作目录,不是jenkins服务的目录,而是要执行任务的那台电脑的工作目录,标签可以随便命名
保存后,点击节点进入查看
这时可以看到节点还没有开启,设置方法有两种:
第一种方法:点击Launch的按钮进行下载,但需要把java升级到最新版本,否则不能使用
第二种方法:点击agent.jar进行下载,下载完毕后,进入文件所在目录打开cmd,复制第一行命令,执行服务开启
开启服务后,刷新一下页面,可以看到节点连接成功
打开项目进行分配任务,勾选【限制项目的运行节点】-->输入节点名称即可
注意:因为我们没有使用git管理代码,所以jenkins不能自动下载代码,所以我们需要手动把代码复制到对应的目录下
点击【Build Now】进行构建,构建成功后可以看到执行的是节点momo