jenkins集成自动化和allure报告

1.allure安装与使用

具体步骤如下:

  1. 安装包:allure-command-line,运行报告服务(尽量去官网进行下载)                                      下载完后,添加环境变量,确定安装成功      jenkins集成自动化和allure报告_第1张图片jenkins集成自动化和allure报告_第2张图片jenkins集成自动化和allure报告_第3张图片
  2. python中安装allure第三方库:pip install allure-pytest
  3. 运行命令:pytest --alluredir=output 或  run.py运行
  4. allure serve output 查看测试报告

只筛选了一条测试用例,代码如下:

jenkins集成自动化和allure报告_第4张图片

run.py代码如下:

import pytest

pytest.main(['-m', 'success', '--alluredir=output'])

运行结果:

jenkins集成自动化和allure报告_第5张图片

可以看到生成了output目录

jenkins集成自动化和allure报告_第6张图片

在对应的项目目录下执行命令allure serve output,就会自动开启allure服务,打开测试报告

jenkins集成自动化和allure报告_第7张图片

报告内容如下:

jenkins集成自动化和allure报告_第8张图片

jenkins集成自动化和allure报告_第9张图片

jenkins集成自动化和allure报告_第10张图片

2.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集成自动化和allure报告_第11张图片

通常登录成功的无需截图,只有登录失败报错了需要截图,这只是个例子,具体需不需要取决自己

3.jenkins集成自动化

开启jenkins服务(如何设置具体可以参考此篇文章jenkins介绍与使用_晒不黑的黑煤球的博客-CSDN博客),登录后,新建一个item

jenkins集成自动化和allure报告_第12张图片

先不用设置任何内容直接保存,保存后进行一次构建

jenkins集成自动化和allure报告_第13张图片

打开workspace,可以看到刚刚我们新建的item

jenkins集成自动化和allure报告_第14张图片

把我们要进行自动化的代码手工复制到此目录下(我这里模拟的是本地操作代码,工作中通常还是通过git来进行下载代码)

jenkins集成自动化和allure报告_第15张图片

安装allure插件

jenkins集成自动化和allure报告_第16张图片

 进行allure设置:点击【Manage Jenkins】--> 【Global Tool Configuration】

jenkins集成自动化和allure报告_第17张图片点击【Allure Commandline 安装】-->设置名称,选择版本,点击保存即可

jenkins集成自动化和allure报告_第18张图片

打开要设置的项目,点击配置-->增加构建后操作步骤-->选择【Allure Report】-->设置路径

jenkins集成自动化和allure报告_第19张图片

jenkins集成自动化和allure报告_第20张图片

 设置完毕后,可以看到显示了Allure Report 按钮

jenkins集成自动化和allure报告_第21张图片

最后,点击【Build Now】进行构建,构建成功后可以点击查看allure报告

jenkins集成自动化和allure报告_第22张图片

jenkins集成自动化和allure报告_第23张图片

总结在jenkins设置allure报告的步骤:

  1. 安装allure插件,jenkins可以使用allure服务
  2. 在【Global Tool Configuration】添加allure命令
  3. 在jenkins项目中设置构建后操作,选择allure report,注意个性路径:output
  4. 点击jenkins构建按钮

4.jenkins主从模式 

我们现在这么执行是在jenkins的服务机上操作的,但在实际工作中,jenkins肯定不会安装在自己本地,多数是安装的服务器上,服务器上安装的linux系统,这样我们想跑web自动化代码就比较麻烦,因为需要通过命令行安装浏览器,才能进行操作

问题一:浏览器不是可视化界面,没办法看到页面,问题二:在linux系统上执行web自动化代码,看不出来效果,因为截图不到页面,不知道哪里出问题,问题三:占用CPU内存比较高

所以 web自动化测试可以使用主从模式来进行测试

主从模式:

说白了就是把构建任务分发到多个从节点去执行,可以方便进行web自动代测试,可以提高支撑起多个项目的大量构建任务等

一台服务器:一个人 slave奴隶

节点

发配任务:master 主人

master/slave

分布式

jenkins服务:注册节点,给项目下达任务

其他的节点:执行任务

jenkins和其他节点,进行通信

点击【Manage Jenkins】--> 【Manage Nodes and Clouds】

jenkins集成自动化和allure报告_第24张图片

点击 【新建节点】-->输入节点名称,勾选按钮,点击确定

jenkins集成自动化和allure报告_第25张图片

jenkins集成自动化和allure报告_第26张图片

确定后,进入详情设置:设置Number of executors,远程工作目录,标签,勾选Use WebSocket

Number of executors 主要看slave的电脑(强度大小)cpu的核数,核数是几就设置几,远程工作目录,不是jenkins服务的目录,而是要执行任务的那台电脑的工作目录,标签可以随便命名

jenkins集成自动化和allure报告_第27张图片

jenkins集成自动化和allure报告_第28张图片

保存后,点击节点进入查看 

jenkins集成自动化和allure报告_第29张图片

这时可以看到节点还没有开启,设置方法有两种:

第一种方法:点击Launch的按钮进行下载,但需要把java升级到最新版本,否则不能使用

第二种方法:点击agent.jar进行下载,下载完毕后,进入文件所在目录打开cmd,复制第一行命令,执行服务开启

jenkins集成自动化和allure报告_第30张图片

jenkins集成自动化和allure报告_第31张图片

开启服务后,刷新一下页面,可以看到节点连接成功

jenkins集成自动化和allure报告_第32张图片

打开项目进行分配任务,勾选【限制项目的运行节点】-->输入节点名称即可

jenkins集成自动化和allure报告_第33张图片

注意:因为我们没有使用git管理代码,所以jenkins不能自动下载代码,所以我们需要手动把代码复制到对应的目录下

jenkins集成自动化和allure报告_第34张图片

点击【Build Now】进行构建,构建成功后可以看到执行的是节点momo

jenkins集成自动化和allure报告_第35张图片

你可能感兴趣的:(web,jenkins,自动化)