Jenkins集成appium自动化测试(Windows篇)
一,引入问题
自动化测试脚本绝大部分用于回归测试,这就需要制定执行策略,如每天、代码更新后、项目上线前定时执行,才能达到最好的效果,这时就需要进行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:\autoTest\workspace\test\run.py

Jenkins集成appium自动化测试(Windows篇)的更多相关文章
- SonarQube系列三、Jenkins集成SonarQube(dotnetcore篇)
		
[前言] 本系列主要讲述sonarqube的安装部署以及如何集成jenkins自动化分析.netcore项目.目录如下: SonarQube系列一.Linux安装与部署 SonarQube系列二.分析 ...
 - Jmeter+jenkins如何快速搭建接口和性能测试持续集成解决方案-[基于windows篇]
		
最近在用Jmeter本来想写一个详细的使用教程,突然看到有前辈已经写好了不错的教程,特此"借花献佛"整理出来分享给大家! Jenkins + Jmeter 构建接口.性能测试持续集 ...
 - 初次尝试使用jenkins+python+appium构建自动化测试
		
初次尝试使用jenkins+python+appium构建自动化测试 因为刚刚尝试使用jenkins+python+appium尝试,只是一个Demo需要很多完善,先记录一下今天的成果,再接再厉 第一 ...
 - Appium+python自动化(四十二)-Appium自动化测试框架综合实践- 寿终正寝完结篇(超详解)
		
1.简介 按照上一篇的计划,今天给小伙伴们分享执行测试用例,生成测试报告,以及自动化平台.今天这篇分享讲解完.Appium自动化测试框架就要告一段落了. 2.执行测试用例&报告生成 测试报告, ...
 - Jenkins集成taffy进行自动化测试并输出测试报告
		
本文主要介绍Jenkins集成taffy/nose框架进行自动化测试并输出测试报告方法. 0. 测试环境 Jenkis主节点部署在CentOS系统上,子节点为Win10 64位系统(即我们本机运行自动 ...
 - Appium+Robotframework实现Android应用的自动化测试-1:Appium在Windows中的安装
		
让我们开始在Windows中开始安装Appium吧,Appium在OS X中的具体安装后面的文章会介绍. 另外,官网上说先要装Node.js,还要装Apache Ant和Apache Maven,Gi ...
 - jenkins集成jmeter-进阶篇
		
1.gitlab自动触发jenkins构建 1⃣️安装插件: 2⃣️新建工程,设置git url,build when a change is pushed auto.sh /bin/sh echo ...
 - Postman+Newman+jenkins实现API自动化测试
		
最近自己在学习用postman+newman+jenkins实现API自动化测试,这里做个回顾和记录.(此次是在windows上进行的环境搭建) 一.说明 1.大致思路:利用postman做接口调试所 ...
 - linux服务器中Jenkins集成git、Gradle持续构建Springboot项目
		
Jenkins是用java编写的开源持续集成工具,目前被国内外各公司广泛使用.本章教大家如何在linux服务器中使用Jenkins自动发布一个可作为linux服务发布的Springboot项目. 自动 ...
 
随机推荐
- Apache Pulsar 在腾讯 Angel PowerFL 联邦学习平台上的实践
			
腾讯 Angel PowerFL 联邦学习平台 联邦学习作为新一代人工智能基础技术,通过解决数据隐私与数据孤岛问题,重塑金融.医疗.城市安防等领域. 腾讯 Angel PowerFL 联邦学习平台构建 ...
 - [LeetCode]55. 跳跃游戏(贪心)
			
题目 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 判断你是否能够到达最后一个位置. 示例 1: 输入: [2,3,1,1,4] 输出: tr ...
 - 1. QCamera2基础组件——cam_semaphore
			
/* Copyright (c) 2012, The Linux Foundation. All rights reserved. * * Redistribution and use in sour ...
 - 最全总结 | 聊聊 Python 数据处理全家桶(Mysql 篇)
			
1. 前言 在爬虫.自动化.数据分析.软件测试.Web 等日常操作中,除 JSON.YAML.XML 外,还有一些数据经常会用到,比如:Mysql.Sqlite.Redis.MongoDB.Memch ...
 - k8s控制器资源
			
k8s控制器资源 Pod pod在之前说过,pod是kubernetes集群中是最小的调度单元,pod中可以运行多个容器,而node又可以包含多个pod,关系如下图: 在对pod的用法进行说明之前 ...
 - 剑指offer 59-II 队列的最大值
			
题目描述 请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value.push_back 和 pop_front 的均摊时间复杂度都是O(1). 若队列为空,pop_ ...
 - 转载:关于Python3中venv虚拟环境
			
https://www.cnblogs.com/zhaof/p/7299025.html
 - Spring学习(三)--Spring的IOC
			
1.BeanFactory和FactoryBean BeanFactory是一个接口类,定义了IOC容器最基本的形式,提供了IOC容器所应该遵守的基本服务契约. FactoryBean是一个能产生或者 ...
 - 如何让百度网盘下载速度达60MB/s!
			
(软件下载方式在文末) 自从 PanDownload 被处理之后 一直没有超越它的可替代的应用出来 但是最近,竟然有人接盘了!重新制作上线 推出了更加强劲的复活版! 放张图,大家先感受下 60MB/s ...
 - 删除链表的倒数第N个节点(头部加一个哑结点)
			
我的代码:测试用例[1,2]2, 时会报错,无法不能删除第一个指针 /** * Definition for singly-linked list. * public class ListNode ...