使用jenkins自动构建生成Allure报告 

这里我会记录常用的一种方法,还有一种其他的方法~~

我这里的Jenkins 服务器和跑自动化代码的服务器 分开的,前者为Linux,后者为Windows。

第一种方法:

运行Jenkins上的 item 去远程执行 Windows上事先放置的bat文件,去执行自动化case,生成测试报告。

前一篇博文说了jenkins ssh远程登陆Windows系统的相关问题:https://blog.csdn.net/qq_41838901/article/details/101017980

先保证:测试jenkins服务器可以远程Windows后,如下配置Jenkins:

1、先要安装ssh插件

管理插件里面下载:

2、配置远程服务器信息

点击Manage Jenkins -> configure system,找到如下:

记得填完信息后,点击”Test Configuration“, 测试是否可以Success!

 

3、新建一个item

由于代码,已经bat文件均已经在Windows服务器上面了,那么只需要jenkins上去指定执行就好了。

(cmd /c call :在当前dos命令窗口中执行bat文件并在之后关闭窗口)

或者

均可。

 

4、build 执行

 

5、bat文件说明

c:
cd C:\Users\t_ful\PycharmProjects\test   
del /f/s/q reports\allurehtml >nul
del /f/s/q reports\allurereport >nul
rmdir /s/q reports\allurehtml
rmdir /s/q reports\allurereport
pytest -s -q --alluredir ./reports/allurereport
allure generate ./reports/allurereport -o ./reports/allurehtml
exit

 

6、部分自动化测试用例说明

 

import os
import allure
import pytest
from common.Base import BasePage
from common.Drivers import Browser
from Page.loginPage import loginCase
from common.readExcel import IOExcel
#unittest.TestCase    #TestCase类,所有测试用例继承的基本类
#unittest.TestSuite   #TestSuite类,创建测试套件
filepath = os.path.abspath('.').split('test')[0] + 'test\\element\\testcase.xls'
re = IOExcel(filepath)  # 获取测试用例数据
caseData = re.get_sheet('login')   #获取***sheet页的数据


@allure.feature('登陆1')
class Test_login(object):
    def setup_method(self):
        driver = Browser().open_browser()
        self.bpage = BasePage(driver)
        self.lpage = loginCase(self.bpage)
    def teardown_method(self):
        self.bpage.close_browser()

    # @allure.description('不使用多渠道登陆方式')
    @allure.story('用户登陆成功,不使用多渠道方式登陆')
    @allure.severity('blocker')  # 设置用例重要级
    def test_success01(self):
        '''不使用多渠道方式登陆成功'''
        hang = 2    #获取第**sheet页的第*行的数据,返回为list
        with allure.step('获取测试数据表格中的第{}行数据'.format(hang)):
            rowData = re.get_rowData(hang)
        with allure.step('应用测试数据(账号:{0},密码:{1},渠道类型:{2}.)'
                                 .format(rowData[4],rowData[5],rowData[6])):
            self.lpage.login_page_quick(rowData[4],rowData[5],rowData[6])
            self.bpage.delay(1)
        try:
            # assertEqual(bpage.get_title(),rowData[9],'测试用例通过')
            title = self.bpage.get_title()
            self.lpage.login_fail()
            with allure.step('验证登陆结果,结果是否为:{} .'.format(title)):
                assert title == rowData[9]
        except Exception as e :
            with allure.step('结果写入excel,写入:不通过 .'):
                re.write_cell(hang,10,'不通过')
            print(e)
        else:
            with allure.step('结果写入excel,写入:通过 .'):
                re.write_cell(hang, 10, '通过')


    @allure.story('用户登陆成功,使用多渠道方式登陆')
    @allure.severity('blocker')  # 设置用例重要级
    def test_success_02(self):
        '''使用多渠道方式登陆成功'''
        hang = 3    #获取第**sheet页的第*行的数据,返回为list
        with allure.step('获取测试数据表格中的第{}行数据'.format(hang)):
            rowData = re.get_rowData(hang)
        with allure.step('使用sip号登陆,应用测试数据(账号:{0},密码:{1},渠道类型:{2},sip号码:{3},sip类型:{4}.)'
                                 .format(rowData[4],rowData[5],rowData[6],rowData[7],rowData[8])):
            self.lpage.login_page(rowData[4],rowData[5],rowData[6],rowData[7],rowData[8])
            self.bpage.delay(1)
        try:
            # assertEqual(bpage.get_title(),rowData[9],'测试用例通过')
            with allure.step('验证登陆结果,结果是否为:{} .'.format(rowData[9])):
                assert self.bpage.get_title() == rowData[9]
        except Exception as e :
            with allure.step('结果写入excel,写入:不通过 .'):
                re.write_cell(hang,10,'不通过')
            print(e)
        else:
            with allure.step('结果写入excel,写入:通过 .'):
                re.write_cell(hang, 10, '通过')

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐