jenkins集成robot-cases-selector-plugin使用指南

5 篇文章 0 订阅
5 篇文章 0 订阅


前言

jenkins集成robot用例解析和勾选插件robot-cases-selector-plugin可在jenkins上像ride一样进行勾选用例来执行


申明
1、本插件严禁私人或任何组织机构进行转售盈利
2、本插件不可大规模商用盈利

一、jenkins集成robot-cases-selector-plugin后的作用

1、方便调试,jenkins工程给开发或测试做单条或几条用例的验证时很方便,不用开发学习框架,只要选择用例后点击构建就行
2、方便跟TAG做筛选,当有阻塞用例不需要执行时,不用每次都提交修改TAG的脚本,只在jenkins上配置勾选就行
3、插件支持SVN和Git自动下载代码后勾选,还支持TAG和用例名称的搜索勾选,功能强大,能直观的展示用例,给外行人员的使用带来了极大的便捷
4、自动化测试绝不是测试单方面的事,有此插件后,可让开发使用集成了本插件的构建项目来自觉解决问题和调试问题

二、使用步骤

2.1安装

1、本插件暂时未开源,只能使用离线上传hpi包方式安装,本插件依赖Build With Parameters插件,请先安装Build With Parameters插件。本插件下载链接:https://download.csdn.net/download/weixin_42189347/18911292
2、管理员登录jenkins
3、Manage Jenkins ——> Manage Plugins ——> 高级
在这里插入图片描述
在这里插入图片描述

2.2 使用说明

1、进入project配置,启用参数构建项(This project is parameterized)
2、添加参数下拉选择Robot Cases Selector, 如下图所示
在这里插入图片描述
3、弹出如下界面,开始配置SVN或Git上脚本
在这里插入图片描述
4、填写用户名密码和脚本路径后,点击刷新,解析出脚本工程后,按需勾选后点击保存,再点击高级,得到勾选用例保存路径
在这里插入图片描述
5、勾选用例结果如下所示,保存勾选用例的文件可以直接给robot通过命令行来运行
在这里插入图片描述

6、为了jenkins上TAG和勾选用例相互作用,我们可以自己写个脚本来每次生成一个参数文件,将勾选用例,TAG筛选,报告目录等都写入配置文件,然后robot命令行来执行配置文件。

7、当有新增删除等操作时需要进入配置勾选
8、这里提供一个例子:
a. jenkins中调用python执行set_argfile.py,将勾选用例,TAG筛选,报告目录等都写入配置文件
b. 通过robot --argumentfile /xxx…/argfile.txt /xxx…/test_projec方式来执行
下图示例还包含了allure集成等,可先不管,只做参考
在这里插入图片描述
c. set_argfile.py如下

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#  Author:mackin

import argparse
import codecs
import os

def get_last_selected_cases(path):
    last_selected_cases = os.path.basename(path)
    tmp_file_list = []
    for file in os.listdir(os.path.dirname(path)):
        # 前14位不包含时间戳
        if last_selected_cases[:14] == file[:14]:
            tmp_file_list.append(file)
            if file > last_selected_cases:
                last_selected_cases = file
    last_selection_path = os.path.join(os.path.dirname(path), last_selected_cases)
    selected = read_selected_cases(last_selection_path)
    #  读取后把插件生成的带时间后缀的selection文件删掉,这样保证每次取最新的不受上次生成的文件影响
    selected_cases_len = 18
    for file in tmp_file_list:
        if len(file) > selected_cases_len:
            os.remove(os.path.join(os.path.dirname(path), file))
    return selected

def read_selected_cases(file_path='selected_cases.txt'):
    """
    - 读jenkins上插件生成的被选择用例
    参数:
        file_path: 被选择用例结果文件路径
    """
    selected = ''
    with codecs.open(file_path, "r", 'utf-8') as fp:
        selected = fp.read()
    return selected

def write_argfile(arg_dict, file_path='selected_cases.txt', dst_path='argfile.txt'):
    """
    - 将robot运行参数生成参数文件,以便robot通过robot --argumenfile argfile.txt方式运行,其中指定了标签,报告等
    参数:
        arg_dict:标签,报告等选择项
        file_path: 被选择用例结果文件路径
        dst_path:argfile.txt生成路径
    """
    if os.path.exists(file_path):
        selected = get_last_selected_cases(file_path)
        with codecs.open(dst_path, "w", 'utf-8') as fp:
            for key in arg_dict:
                if key != 'selected_cases' and key != 'argfile':
                    fp.write('--' + str(key))
                    fp.write('\n')
                    fp.write(str(arg_dict[key]))
                    fp.write('\n')
            fp.write(selected)

if __name__ == '__main__':
    parser = argparse.ArgumentParser("指定robot执行参数")
    parser.add_argument('-L', '--loglevel', default='DEBUG', help='日志等级')
    parser.add_argument('-d', '--outputdir', default='D:\\autotest\\report', help='测试结果输出文件夹')
    parser.add_argument('-C', '--consolecolors', default='auto', help='控制台输出的颜色:auto-输出不重定向颜色')
    parser.add_argument('-W', '--consolewidth', default=228, help='控制台信息的输出宽度')
    parser.add_argument('-i', '--include', default='TEST', help='通过标签控制测试执行范围')
    parser.add_argument('-e', '--exclude', default='UNREADY BLOCK', help='通过标签控制测试不执行范围')
    parser.add_argument('-S', '--selected_cases', default='selected_cases.txt', help='被选择用例结果文件路径')
    parser.add_argument('-A', '--argfile', default='argfile.txt', help='参数文件路径')
    args = parser.parse_args()
    print("robot运行参数为:", vars(args))
    write_argfile(vars(args), args.selected_cases, args.argfile)

d、argfile.txt模板如下

--loglevel
DEBUG
--outputdir
D:/autotest/report/datao-autotest/16
--consolecolors
auto
--consolewidth
228
--include
DATAO
--exclude
UNREADY BLOCK
--suite
Test Project.Testcase.ZVM数据运维平台.数据统计.设备故障告警统计
--test
Test Project.Testcase.ZVM数据运维平台.数据统计.设备故障告警统计.设备故障告警阈值巡检数统计验证
--suite
Test Project.Testcase.ZVM数据运维平台.数据统计.设备故障告警统计
--test
Test Project.Testcase.ZVM数据运维平台.数据统计.设备故障告警统计.设备告警状态占比验证

三、效果展示

1、手动构建时可用已经配置的勾选,也可本次单独勾选,本次勾选的配置会生成带时间戳的文件,本次构建时使用它即可,不会影响之前的默认配置
在这里插入图片描述

四、总结

目前插件针对异常情况的处理还不完善,如出现意外情况请咨询QQ1043946115,有空会慢慢完善,也欢迎会JS和JAVA的童鞋来一起研究开发

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值