一,引入问题

  • 自动化测试脚本绝大部分用于回归测试,这就需要制定执行策略,如每天、代码更新后、项目上线前定时执行,才能达到最好的效果,这时就需要进行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"选项。但其实这里选择"Launch agent by connecting it to the master"也是可行的。

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

同时会从第6.2步中配置好的git仓库中下载项目代码保存在test文件夹中,如下:

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

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

7,调试

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

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

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

四,总结

注意:

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

Jenkins集成appium自动化测试的更多相关文章

  1. Jenkins集成appium自动化测试(Windows篇)

    一,引入问题 自动化测试脚本绝大部分用于回归测试,这就需要制定执行策略,如每天.代码更新后.项目上线前定时执行,才能达到最好的效果,这时就需要进行Jenkins集成. 不像web UI自动化测试可以使 ...

  2. Jenkins集成taffy进行自动化测试并输出测试报告

    本文主要介绍Jenkins集成taffy/nose框架进行自动化测试并输出测试报告方法. 0. 测试环境 Jenkis主节点部署在CentOS系统上,子节点为Win10 64位系统(即我们本机运行自动 ...

  3. 初次尝试使用jenkins+python+appium构建自动化测试

    初次尝试使用jenkins+python+appium构建自动化测试 因为刚刚尝试使用jenkins+python+appium尝试,只是一个Demo需要很多完善,先记录一下今天的成果,再接再厉 第一 ...

  4. Appium+python自动化(四十二)-Appium自动化测试框架综合实践- 寿终正寝完结篇(超详解)

    1.简介 按照上一篇的计划,今天给小伙伴们分享执行测试用例,生成测试报告,以及自动化平台.今天这篇分享讲解完.Appium自动化测试框架就要告一段落了. 2.执行测试用例&报告生成 测试报告, ...

  5. 基于Jmeter+maven+Jenkins构建性能自动化测试平台

      一.目的: 为能够将相关系统性能测试做为常规化测试任务执行,且可自动无人值守定时执行并输出性能测试结果报告及统计数据,因此基于Jmeter+maven+Jenkins构建了一套性能自动化测试平台 ...

  6. Postman+Newman+jenkins实现API自动化测试

    最近自己在学习用postman+newman+jenkins实现API自动化测试,这里做个回顾和记录.(此次是在windows上进行的环境搭建) 一.说明 1.大致思路:利用postman做接口调试所 ...

  7. Jenkins+Ant+Jmeter自动化测试平台

            持续集成 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成.每次集成都通过自动化的构建(包括编译,发布,自动 ...

  8. Appium自动化测试环境搭建

    前言 Appium是一个开源的自动化测试框架,支持跨平台,支持多种编程语言,可用于原生,混合和移动web应用程序,使用webdriver驱动ios,android应用程序.那么为了学习app自动化测试 ...

  9. jmeter+ant+jenkins搭建接口自动化测试环境

    jmeter+ant+jenkins搭建接口自动化测试环境(基于win) 1.jmeter jmeter依赖java运行环境,所以需要提前下载jdk并配置好环境变量 官网下载(http://jmete ...

  10. Jenkins集成jacoco收集集成测试覆盖率

    Jenkins集成jacoco收集集成测试覆盖率 2020-02-28 目录 0 整体思路1 安装版本2 全局工具配置3 Jenkins创建JacocoIntegrateTestDemo项目  3.1 ...

随机推荐

  1. .Net的产品变迁

    从开始接触.Net以来,转眼过了好几年.在这许多年里,不得不感慨.Net产品线也在不断发生着变化, 下面就简单的进行一下梳理. .Net能做桌面应用程序,也就是C/S,也能做网站开发,就是通常说的B/ ...

  2. git常见问题集合

    注1:问题总结来自于实际使用,关于搜到的资料链接一并粘贴; 场景1:GIT本地代码处于detached HEAD的情况(又称游离状态)的解决办法; 问题:有时候git由于一些操作的问题出现了detac ...

  3. java中post发送json格式数据

    /** * 发送post请求 * @param URL 数据发送地址 * @param json json格式数据内容 * @param headParams 请求头内容 * @return 请求结果 ...

  4. 思科vlan简单配置

    实验拓扑 实验目标:2台交换机,4台pc,分别处于10,20vlan中可以跨交换机相互通信 tips:vlan是2层技术 可以配置在交换机上 实验ip PC2 10.1.1.2/24 PC1 10.1 ...

  5. 集群分发xsync xcall kafka启动脚本命令,命令方式安装epel源

    安装epel库源 yum install epel-release -y --nogpgcheck yum install glances 安装开始 建立hosts 白名单 127.0.0.1 loc ...

  6. hdrp gpu instance MPB不生效问题

    Thanks for posting these tips. I was devastated when my project dropped to 3 FPS because material pr ...

  7. PC端 图片宽度是百分比,动态设置图片高度为 6:9

    我们知道图片宽度可以设置  百分比,但是高度要给一个固定值  不然不生效,并且产品要求图片显示必须是9:6,这开始确实难倒我了 后面想了一下用js  获取图片宽度  动态的计算高度就行了,超简单 se ...

  8. ES6新增运算符 ?? || &&

    运算符(?? || &&) && 与运算符 &&左边表达式为真时执行右边表达式 let a = true let b = 0 a && ...

  9. pymongo解决查询的时区相差8小时

    背景 最近需要到mongoDB中查询数据,但是发现返回的日期总是和实际时间差8小时.到数据库查询了一下看到时间的确是准确的,只是查询出来的比实际的少了8小时. 通过网上查找资料了解到默认时区是UTC, ...

  10. 064_Js常用的五大事件 onclick nochanger onload onsubmit onblur

    事件是电脑输入设备与页面交互的响应. onload加载完成事件:onload事件 是在页面被浏览器加载完成之后.自动触发的响应 onclick单击事件 onblur失去焦点事件 onchange内容发 ...