接口自动化基础(六)allure和jenkins持续集成

allure测试报告

官网:https://docs.qameta.io/allure/

安装

1:安装jdk1.8+并配置环境变量;

2:安装scoop

set-executionpolicy remotesigned -scope currentuser
iex (new-object net.webclient).downloadstring(‘https://get.scoop.sh‘)  # 需要代理
scoop help  # 验证是否成功

3:安装allure

scoop install allure
allure help  # 验证是否成功

4、安装allure-pytset

pip install allure-pytest

使用

  1. 装饰器使用

功能:@allure.feature() @allure.story()

严重等级: @allure.severity(xxx) blocker critical normal minor trivial

@allure.feature(‘顾客信息统计‘)
class TestCustomer(BaseApi):
    data = Customer.yaml_load(‘../data/yunding/customer.data.yaml‘)

    @classmethod
    def setup_class(cls):
        cls.cus = Customer()
        
    @allure.severity(‘blocker‘)
    @allure.story(‘查询客流统计‘)
    @pytest.mark.parametrize(‘businessStoreIds, expect‘, data[‘test_find_customer_stat‘])
    def test_find_customer_stat(self, businessStoreIds, expect):
        res = self.cus.find_customer_stat(businessStoreIds)
        logging.info(
            ‘\n 查询客流统计: \n - businessStoreIds:{} \n 断言code:{} \n 返回值: {}‘
                .format(businessStoreIds, expect, res.json())
        )
        assert res.json()[‘code‘] == expect

2、命令生成报告

pytest file_name --alluredir = dict_name    # 执行脚本并生成报告,file_name为测试文件,dict_name为报告生成路径
allure serve -p 80 dict_name  # 运行报告,生成一个H5,会自动跳转
allure generate dict_name -o dict_name_1  # 生成静态报告文件 前者为报告路径,后者为输出路径

3、代码生成报告

pytest.main([‘-s‘, ‘--alluredir‘, res_path, ‘test_chart_information.py‘])  # res_path为报告输出路径

git+jenkins+allure+email持续集成

allure配置

1、在pycharm上配置git,将代码提交
2、代码中的testcase目录下新建一个run.py,内容如下

import pytest

if __name__ == ‘__main__‘:
    res_path = ‘/var/lib/jenkins/workspace/IntelligenceHardwareApiAuto/results/allure-results‘  # 测试报告存放路径,该路径是jenkins从git上拉下的代码路径
    pytest.main([‘-s‘, ‘--alluredir‘, res_path, ‘test_chart_information.py‘]) # 运行test_chart_information.py下的所有用例,可以运行项目的所有用例,也可运行指定用例,具体百度

在服务器上配置allure插件,https://docs.qameta.io/allure/#_pytest,上传一个allure的zip包到服务器,解压到任意目录,将/bin配置到环境变量即可,输入 allure可看到帮助信息,注意要有jdk1.8+的环境

3、在服务器 pip install allure-pytest

4、Jenkins配置allure插件,https://www.cnblogs.com/Simple-Small/p/11512337.html,service jenkins restart 重启jenkins命令

5、在系统管理--全局工具配置中配置allure和jdk和git,注意allure安装目录不带bin !

接口自动化基础(六)allure和jenkins持续集成

? 接口自动化基础(六)allure和jenkins持续集成

6、在job中配置构建后操作allure-report,对比上面的第二条,xml文件路径==res_path,静态文件生成路径也在results下

? 接口自动化基础(六)allure和jenkins持续集成

7、添加构建,如下:

? 接口自动化基础(六)allure和jenkins持续集成

  • 服务器给jenkins用户root权限,不然无法写入数据,具体百度
  • 执行构建,构建成功

邮件配置

1、邮件配置,系统管理--系统配置,配置Jenkins Location,注意密码是stmp/pop的密钥,具体获取方法请百度,如下: 接口自动化基础(六)allure和jenkins持续集成

? 配置Extended E-mail Notification,如下: 接口自动化基础(六)allure和jenkins持续集成

? 配置邮件通知,如下:配好之后测试一下 接口自动化基础(六)allure和jenkins持续集成

2、在job添加构建后操作:

? 接口自动化基础(六)allure和jenkins持续集成

? 接口自动化基础(六)allure和jenkins持续集成

邮件内容如下:

<!DOCTYPE html>
<html lang="en">
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0">
    <table width="95%" cellpadding="0" cellspacing="0"  style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
        <tr>
            本邮件由系统自动发出,无需回复!<br/>
            各位同事,大家好,以下为${PROJECT_NAME }项目构建信息</br>
            <h1><center><font color="red">allure报告在线查看or下载allure-report.zip用firefox离线查看,测试用例见附件</font><center></h1>
        </tr>
        <tr>
            <td><br/>
            <b><font color="#0B610B">项目描述:${JOB_DESCRIPTION}<br></font></b>
            <hr size="2" width="100%" align="center" /></td>
        </tr>
        <tr>
            <td>
                <ul>
                    <li>项目名称 : ${PROJECT_NAME}</li>
                    <li>构建编号 : 第${BUILD_NUMBER}次构建</li>
                    <li>触发原因: ${CAUSE}</li>
                    <li>构建状态: ${BUILD_STATUS}</li>
                    <li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>
                    <li>构建  Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>
                    <li>工作目录 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>
                    <li>项目  Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>
                    <li>系统allure测试报告:<a HREF="${PROJECT_URL}${BUILD_NUMBER}/allure">${PROJECT_URL}${BUILD_NUMBER}/allure</a><li>
                </ul>
    </td>
        <tr>
         <td>
            <b><font color="#0B610B">构建日志 (最后 100行):</font></b>
        <hr size="2" width="100%" align="center" />
            </td>
        </tr>
        <tr>
           <td>
                <textarea cols="80" rows="30" readonly="readonly" style="font-family: Courier New">${BUILD_LOG, maxLines=100}</textarea>
            </td>
        </tr>
        ${JELLY_SCRIPT}
    </table>
</body>
</html>

接口自动化基础(六)allure和jenkins持续集成

上一篇:在多个always模块中对同一变量赋值


下一篇:配置Orchard Core 最新的包资源