一,引入问题

  • 自动化测试脚本绝大部分用于回归测试,这就需要制定执行策略,如每天、代码更新后、项目上线前定时执行,才能达到最好的效果,这时就需要进行Jenkins集成。
  • 不像web UI自动化测试可以使用无痕浏览器做到无界面,APP UI自动化需要用到真机或模拟器,在完全的linux环境下做Jenkins集成显得不太可能。
  • 可以在自己的工作电脑上搭建Jenkins,并运行APP UI自动化测试项目,但工作电脑关闭后就不能定时运行自动化项目,且工作的电脑还要用来做别的工作,这样显得极其不方便。

基于以上等原因,可以考虑向公司申请一台专门用于做自动化测试的本地电脑,搭建好本地电脑的测试环境,连接真机或模拟器;在公司的测试服务器上部署Jenkins,新建节点连接本地测试电脑,这样就可以利用Jenkins设置策略定时在本地测试电脑上构建测试项目。

注意:之所以不直接在专门用于测试的电脑上直接搭建Jenkins,是因为可能除APP自动化项目外,还有web自动化、接口自动化或者其他集成项目,Jenkins搭建在远程服务器上方便对所有需要Jenkins构建的项目进行管理。

本篇博客涉及的环境:远程Jenkins版本2.176.3,本地电脑 Windows 10

二,搭建思路

1,搭建Jenkins

2,新建节点

3,配置节点

4,节点启动代理

5,新建任务

6,配置任务(获取最新代码、关联从节点等)

7,调试构建

三,具体步骤

1,搭建Jenkins

不多赘述,网上教程很多,大家自行查阅。也有很多公司的测试服务器已经搭建好Jenkins,直接使用即可。 注意 ,本博客示例的Jenkins版本为2.176.3

2,新建节点

登录Jenkins --> Manage Jenkins --> Manage Nodes --> 新建节点,具体步骤如下:

点击确定后,会跳转至节点配置页面。

3,配置节点

3.1,按下图中的说明进行配置,未进行说明的默认即可,再点击【保存】按钮。

注意:

  • 远程工作目录,理论上可以填写本地测试电脑里的任意目录路径,但最好专门新建一个用于Jenkins工作的目录。
  • 我这里的Jenkins版本为2.176.3,启动方法中无 Launch agents Java Web Start 选项,网上查找资料后进入Manage Jenkins --> Configure Global Security 进行如下设置

但启动方法中仍然没有展示"Launch agents Java Web Start"选项。但其实这里选择"Let Jenkins control this Windows slave as a Windows service"也是可行的。

3.2,点击保存后,跳转至Nodes页面,出现如下节点

4,启动代理

4.1,Nodes页面点击节点,跳转至如下页面:

4.2,这里有两种方法启动节点,我选择第一种,点击【Launch】,提示下载slave-agent.jnlp文件,将该文件下载保存至方便后面查找的目录里。

4.3,双击 slave-agent.jnlp 文件后点击运行,会出现如下图标

这个时候,在Jenkins主页我们会看到节点已经连接成功。

5,新建任务

新建一个自由风格的任务,步骤如下:

6,配置任务

对上一步新建的任务进行配置,步骤如下。

6.1,任务关联节点

标签表达式里可以填写配置时填入的标签名,也可以直接填写节点名称。

6.2,源码管理

6.2.1,因为我的代码通过git管理,所以选择Git选项

6.2.2,Repository URL,填入git中该测试项目的地址

6.2.3,Credentials,填入git账号跟密码。填写方法,点击【添加】按钮进入添加页面,添加git账号密码后,再选中即可,具体如下:

6.2.4,Branch Specifier (blank for 'any'),选择项目分支,可填写该项目需要运行的分支,没有其他分支的话,默认master即可

6.3,构建触发器(非必选)

可根据自己的需求来选择不同的项进行配置,也可不配置。如果需要定时构建运行项目,则勾选Build periodically,填入30 23 * * *,则表示每天晚上11点半开始运行项目,如下所示:

6.4,构建

点击【增加构建步骤】按钮,选择"Execute Windows batch command"

输入构建命令,即执行自动化测试项目的命令

注意,第一次配置构建命令时,可以随意配置,如:python run.py,保存配置后先进行第一次构建,第一次构建完成后,会在节点配置的远程工作目录里生成workspace文件夹,下面的第一构建步骤会具体介绍。

6.5,进行第一次构建

按照上面的步骤进行配置后,先点击【应用】再点击【保存】

保存成功后,跳转至test任务页面,点击【Build Now】,进行第一次构建

不用管第一次构建是失败与否,构建完成后会在节点配置的远程工作目录里生成workspace、remoting两个文件夹,如下图

并在workspace中生成两个以任务名命名的文件夹,如下图的test、test@temp

其中test文件夹里会从第6.2步中配置好的git仓库中下载项目代码,如下:

至此,第一次构建的目的达到了。但是我们需要根据项目中run文件的具体路径,再次配置任务里的构建命令,后续才能正确地构建运行测试项目,这里配置如下,再点击应用、保存。

注意,执行python命令需要提前在本地测试电脑里配置好python。

7,调试

按照第6步配置任务完成后,先调试是否能跑通,调试成功后才可进行正式构建执行测试项目,进入任务主页面,点击【Build New】按钮。

在构建历史中,还可选择点击某次构建进入控制台查看构建日志,如下:

至此,就可以通过远程Jenkins在本地测试电脑上集成构建测试任务了。

四,总结

注意:

  • 配置节点时填写的远程工作目录,是本地测试电脑上的目录路径,即该Jenkins节点的工作目录。
  • 配置任务的源码管理时,根据实际需求,如果是git仓库就选择Git,如果是SVN就选择subversion
  • 进行第一次构建之前,由于还没有在远程工作目录里生成workspace并拉取代码,配置的构建命令并不需要真实的执行命令,如:python run.py
  • 第一次构建通常情况下会失败,但会生成remoting、workspace,并从远程代码仓库拉取代码存放在workspace中以节点名称命名的文件夹里
  • 第一次构建完成后,需要对任务重新配置正确的构建命令,如:python E:autoTestworkspaceestun.py

app启动页自动跳转源码_Jenkins集成appium自动化测试(Windows篇)相关推荐

  1. app启动页自动跳转源码_关于移动端App启动页的策划方案

    App启动页是指app在启东时需要加载必要的运行环境和配置,在这个过程中提示用户等待的一个过渡页面. 在产品经理眼里启动页是app给予用户重要的第一印象:也是App最重要的黄金页面之一,所有用户100 ...

  2. html自动跳转源码,两款404页面自动跳转源码html

    资源名称:两款404页面自动跳转源码html  资源大小:200k 第一款:一款卡通的404页面模板,5秒自动跳转首页代码! 第二款:简约404页面源码 这两款404页面中都添加了5秒自动跳转到首页的 ...

  3. Android 12 新APP启动画面(SplashScreen API)简介源码分析

    以往的启动画面 默认情况下刚启动APP时会显示一会白色背景 如果把这个启动背景设置为null,则一闪而过的白色会变成黑色 如果把启动Activity设置为背景透明[< item name=&qu ...

  4. 两款404页面自动跳转源码html

    简介: 两款卡通的404页面模板,5秒自动跳转首页代码! 网盘下载地址: http://kekewl.cc/csKgKxhpbZ20 图片:

  5. html自动跳转源码,网页自动跳转代码收集

    网页自动跳转代码收集 2009-09-27 07:05:04 作者: 网页自动跳转代码收集 不隐藏转向之后的地址 代码一 --------------------------------------- ...

  6. 自动驾驶 Apollo 源码分析系列,系统监控篇(二):Monitor模块如何监控硬件

    前面的文章有分析,Monitor 模块监控的内容分为 Hardware 和 Software 两位. 本篇分析硬件监控部分. 首先,可以观察一下 Apollo 官方文档给出的硬件连接图. 跟自动驾驶本 ...

  7. 自动驾驶 Apollo 源码分析系列,系统监控篇(四):Monitor模块如何监控进程 Process 的存活状态?

    本篇文章分析 Apollo 中监控模块中监控进程状态的相关代码. 1. ProcessMonitor ProcessMonitor 是一个普通的定时器组件,内部函数也只是常规的 RunOnce 和 U ...

  8. 小视频app源码无障碍服务实现自动跳过APP启动页广告

    小视频app源码无障碍服务实现自动跳过APP启动页广告实现的相关代码 一. res目录下新建xml文件夹新建文件accessibility.xml <?xml version="1.0 ...

  9. android开发 时间倒计时的启动页,App启动页倒计时功能

    示例代码采用 RxJava + RxLifecycle + Data-Binding 模式编写 示例图: 话不多说,实现方式如下: 1.导入依赖库 ① RxJava: Reactive Extensi ...

最新文章

  1. VC2010不能将参数从“CString”转换为“const char *”
  2. Deep Learning科普帖
  3. datastage 作业查找脚本
  4. Spark源码分析之Job触发原理
  5. vscode运行C++代码正常,但编辑时有红色波浪线,提示未定义标识符
  6. 基于ssh的多节点之间互信通信的实现
  7. ExtJs异步ajax调用和同步ajax调用公用方法(转)
  8. 转载--Python random模块(获取随机数)常用方法和使用例子
  9. C语言基础题练习10道
  10. FIR滤波器结合快速卷积滤波
  11. 这几个画流程图的软件值得你们收藏
  12. 手把手阿里云企业邮箱设置教程三步搞定
  13. vue打包app网络错误和空白页问题
  14. python电脑版怎么下载-Python
  15. VMware 常见问题集锦
  16. Geogebra拓扑学家的正弦曲线
  17. Wap Push 源码
  18. JS 高级(二)闭包、封装
  19. 如何使用计算机蓝色,电脑中如何用Word的红绿蓝三原色配出天蓝色?
  20. 访问www.baidu.com经历了什么

热门文章

  1. linux系统监控和进程管理
  2. 使用CMake生成sln项目和VS工程遇到的问题
  3. ubuntu12.04 安装Android Studio笔记
  4. 基于heartbeatV2版本的ha-gui工具对httpd做高可用集群(1)
  5. 对命令行程序调用及其结果显示的一点补充
  6. ZZULIOJ 1076: 三位数求解
  7. OJ1017: 表面积和体积
  8. 信息学奥赛一本通(2061:【例1.2】梯形面积)
  9. 平衡的阵容(洛谷-P2880)
  10. 数列分块入门 4(LibreOj-6280)