• 分布式


    分布式

    使用场景:

    1. Jenkins搭在了Linux服务器上 可以跑ui自动化脚本么?-可以啊用分布式完美解决
    2. 比如一个系统的自动化用例有一千多个 一台机器执行所有用例耗时太久 所以用master/slave来解决 同时用多台机器跑脚本更快,需要在jenkins上新建多个任务(对应不同模块用例),指给不同的执行机/小弟机(或许还有更好办法 ,暂不明);
    3. jenkins搭在了Linux上 只能控制它叫windows上的小弟机去跑脚本;
    4. jenkins所在机器一般只执行一个项目的部署和自动化测试,就不需要分布式。如果要执行多个项目的,就需要分布式。
    5. WEB自动化执行比较耗时,常用到执行机。接口自动化运行速度较快,一般不会用到别的执行机

    linux上下载jenkins包 用命令行去解压去安装 此处不会需自行百度

    1jenkins服务器 - linux- 它是纯命令版本。可以装浏览器?-不能,都是以服务来运行的。

    2UI自动化的脚本 - 最好是在windows上跑 用户大多是windows

    怎么在linux上的jenkins上来执行Ui自动化脚本呢??

    1)你的linux服务器是不可以运行的。

    master(/领导) - Slave(从/小弟、执行机)

    linux              windows

    1master(有Jenkins的是master(创建任务/安排任务/关注任务进度/部门级管理/小弟管理/执行任务)

    VS

    多个小弟Slave(向领导报到-执行任务-反馈结果)

    1)是不是只有一个jenkins??  只有master上有jenkinsjenkins具备管理功能。

    2masterslave可以是同一个电脑吗? 领导和小弟是同一个人?---不行 master/Slave模式不支持。

    小弟报道之前,主机得先准备一个位置给小弟&要求。

    1、名称 、描述: 可自己定义

    2 并发构建数:小弟的能力。一般都写1

    3、远程工作目录:1)脚本?2)脚本的环境? 3)脚本放在哪里?小弟机开辟的一个空间放脚本

    4、标签: 分类。即小弟机放在哪个标签分类下,以后分配任务时可直接选择某一标签下所有执行机。

    5、用法:尽可能多的用、只做指定的匹配的任务(一般选这个) 

    1台主机(管理工具-java/allure)  ----- (java的安装目录/allure安装目录/git目录)   -----多台小弟(工具目录)

                                    不同的任务,需要不同的工具环境。jdk1.8,jdk1.11

    主机工具配置:全局工具配置当中的设定目录。

    小弟机工具路径配置:小弟机节点上,配置工具目录。

    一、小弟报道之前,主机得先准备一个位置给小弟&要求。

    1.windows机上访问一台Linux机器上的jenkins(129.211.8.149linux服务器)
    2.Manage jenkinsàmanage nodes and cloudsà新建节点

    进入后的页面如下:点击新建节点(管理员帐号才可点)(节点即小弟机)

    3.新建节点页面:填写节点名称,选择固定节点(permanent agent,点击确定。

     此步比喻为:在此声明 招个windows小弟来干web自动化的活

    4.进入详情填写页面:

    需填字段有:

    1、名称 、描述: 可自己定义

    2 并发构建数:小弟的能力。一般都写1

    3、远程工作目录:1)脚本?2)脚本的环境? 3)脚本放在哪里?小弟机上开辟的一个空间放脚本

    4、标签: 分类。即小弟机放在哪个标签分类下,以后分配任务时可直接选择某一标签下所有小弟机。

    5、用法:尽可能多的用/只做指定的匹配的任务(一般选这个,因为没指定的不匹配的任务我小弟机上都没脚本也做不了啊)

    6、启动方式:选项有:launch agent agents via ssh   —sshmac linux都有的

                         通过java web启动代理-这个是windows的,即小弟机向主机报道的方式

     

    第一次装Jenkins使用时, 一般没“通过java web启动代理”这个选项 要在下面这里开启:

    Manage jenkinsàConfig global securityà

    进入后,找到代理部分,如下图。把默认的“禁用”改为“随机选取”(意为改为端口不指定)――〉保存。再次进入详情填写页面就有了“通过java web启动代理”这一选项。

     

    应该是选择这个 选这个下面出现的内容才和选择“通过java web启动代理”出现的内容一样

     

    7、 可用性: 选择“尽量保持代理在线”(即尽量保持小弟机在线)

    8、节点属性/工具位置(小弟机本机上的jdk/allure命令行所在位置)不填则用主机上jenkins全局工具配置中定义的位置,如果小弟机和主机刚好位置相同则可成功生成allure报告,如果不同,还需指定下小弟机的工具位置。

    5.以上七项填完后点击保存。

    保存后 这个节点显示在列表中有个红色叉叉 代表只是给小弟机建了个坑 但是小弟机还未跟我建立联系

    二、小弟机建立联系,来报道了。

    1.小弟机在自己的电脑上打开master机上的jenkins地址,

    进入Manage jenkinsàmanage nodes and cloudsà

    2.点击小弟机的名字,进入详情面à

    3.lunch

    点击launch,会触发下载slave-agent.jnlp,保留附件。à

    下载完成后,点击打开,可能会弹出提示java版本过低要升级,选择稍后升级(此步可能不会出现)à

    点击”launch” 运行程序

    连接可能略慢  一两分钟吧。安装好后不要关闭,这是连接的工具,关了就断开连接了,直接最小化就行了

    File下有个选项“install as a service”安装成一个服务,如果安装成服务的话,运行过程只能看到日志输出,却看不到浏览器运行过程。

    以上过程还需注意:

    *master机上Jenkins,增加节点(给小弟机准备位置)时,要管理员权限才能操作,一般公司要专业运维才有此管理员帐号。且此步骤随便哪台电脑上登陆master机的jenkins都可操作,有些公司连服务器需要运维开互信权限。

    *小弟机建立联系,一定要在小弟机本机上登陆master机的Jenkins,且不一定要用管理员帐号。

    *小弟机执行时不可锁屏,因为锁屏就断网了。但装成服务的话可以只要开机在 服务就在。但也没网不能执行吧。待求证。

    三、实战:master机给小弟机分配任务

    Jenkins首页,“新建item”(登陆master机上的jenkins

    2.输入任务名称,选择freestyle project,最下方点击“确定”

    1. 在详情页,把任务指给小弟机:(无此步则是由Jenkins所在的主机来执行此任务)

     

    3.1添加小弟机:勾选“限制项目的运行节点”,下方“标签表达式”中填写小弟机的名字或标签,则后方设置都是为小弟机做设置。

     

    3.2 指定工作空间: 点击“高级”展开项中 勾选“自定义工作空间” (按需选择性使用)

     

    3.2.1. 使用自定义的场景比如:代码在pycharm中已跑通了,可直接指定这份代码为工作空间,填上执行机上的代码路径,此处任务是指给了小弟机的,所以要填上小弟机上的工作空间,如下图展示

     

    1.2.2 不勾选“自定义工作空间”即使用小弟机默认的工作空间,即建立节点(小弟机)时指定了小弟机的“远程工作目录”为D:/Jenkins_Slave_Home, 如果用它就会在这个目录下生成一个workspace目录 然后在里面划块地把代码下载在这里。怎么下载? 通过源码管理GIT/SVN下载。

    3.1+3.2配图:

     

    3.4构建触发器:按需配置,此处先不用。


    4.构建中选择“执行windows批处理命令”,出现命令填写框,直接填写命令去运行代码中的main_pytest.py文件:python main_pytest.py。(命令行不需要进入某个目录 因为已经指定了工作空间是:“D:py22_Web_Studyweb自动化-阶段3-pytest应用(2)-fixture骚操作+参数化+标记用例-2019-1211”,会自动运行此空间下的文件

    以上为分配任务执行,还没allure报告,再加上篇的allurejenkins集成 便完美了。


     

     

     

  • 相关阅读:
    elasticsearch
    CentOS6.9安装Logstash
    CentOS6.9安装Filebeat监控Nginx的访问日志发送到Kafka
    openresty capture
    CentOS6.9安装socat
    CentOS挂Windows的NFS备忘
    openCV 备忘
    rabbitmq更换数据文件和日志文件的存放位置
    根据某个文件或文件夹自制rpm包
    checkinstall打包工具使用
  • 原文地址:https://www.cnblogs.com/shuchang1001/p/13561079.html
Copyright © 2020-2023  润新知