这里,我在jenkins上配置了子节点,脚本中包含了在master还是在slave上执行脚本的判断脚本

SERVER_HOME=$JENKINS_HOME/jobs/$JOB_NAME
ATTACHED_PROJECT=iOS_Mobile_Projectecho "node_name = $NODE_NAME, node_labels = $NODE_LABELS"
echo "master_ip = $MASTER_IP, mster_user = $MASTER_USER"
echo "excutor_number = $EXECUTOR_NUMBER"if [ "$NODE_NAME" != master ]; thenWORKSPACE_COMMON=$WORKSPACE/workspaceecho "run in slave($NODE_LABELS)"rm -f $WORKSPACE_COMMON/*.ipascp $MASTER_USER@$MASTER_IP:$SERVER_HOME/../$ATTACHED_PROJECT/workspace/build/Debug-iphoneos/*.ipa $WORKSPACE_COMMON/
elseWORKSPACE_COMMON=$WORKSPACEcp $JENKINS_HOME/jobs/$ATTACHED_PROJECT/workspace/build/Debug-iphoneos/*.ipa $WORKSPACE_COMMON/
fi

上面脚本的功能:
判断是否是master节点,是的话就拷贝本地的ipa到jenkins的workspace目录;不是的话就从master机器的ipa包目录把ipa包拷贝到slave机器的workspace目录

执行脚本

SERVER_HOME=$JENKINS_HOME/jobs/$JOB_NAME# not master node, need to download scripts from master
if [ "$NODE_NAME" != master ]; thenWORKSPACE_COMMON=$WORKSPACE/workspace
elseWORKSPACE_COMMON=$WORKSPACE
fi#slave paths
TUNEUP_HOME=$WORKSPACE_COMMON/../../tuneup_engine
APP_PATH=$WORKSPACE_COMMON/build/Debug-iphoneos/xxx.app
AUTO_TEST_SCRIPT_DIR=$WORKSPACE_COMMON/scripts
AUTO_TEST_REPORT_DIR=$WORKSPACE/reports
REPORT_FILE_DIR=$AUTO_TEST_REPORT_DIR/$BUILD_NUMBERif [ ! -d "$AUTO_TEST_SCRIPT_DIR" ]; thenmkdir -p $AUTO_TEST_SCRIPT_DIR
fiif [ ! -d "$AUTO_TEST_REPORT_DIR" ]; thenmkdir -p $AUTO_TEST_REPORT_DIR
fiif [ ! -d "$REPORT_FILE_DIR" ]; thenmkdir -p $REPORT_FILE_DIR
fi# not master node, need to download scripts from master
if [ "$NODE_NAME" != master ]; then#copy tuneup_engine to slaveecho "run in slave($NODE_LABELS)"rm -f $AUTO_TEST_SCRIPT_DIR/*scp -r $MASTER_USER@$MASTER_IP:$SERVER_HOME/workspace/scripts $AUTO_TEST_SCRIPT_DIR/../
fiset +e
INSTRUMENTS_TRACE_FILE="Instruments.trace"
SCREENSHOTS_DIR="Run 1"cd $AUTO_TEST_SCRIPT_DIR
for script_file in `ls test*.js`
do  echo "$script_file"$TUNEUP_HOME/test_runner/run $APP_PATH $script_file $REPORT_FILE_DIR -x -v -c -d dynamicif [ -d "$INSTRUMENTS_TRACE_FILE" ]; thenmv $INSTRUMENTS_TRACE_FILE Instruments_$script_file.tracefiif [ -d "$SCREENSHOTS_DIR" ]; thenmv $SCREENSHOTS_DIR Screenshots_$script_filefi
done
set -e

上面脚本的功能:
创建测试报告输出目录
判断是否是slave节点,是的话就从master节点拷贝脚本文件到slave节点
使用tuneup脚本引擎执行脚本,并输出脚本执行结果

jenkins + UIAutomation 自动化脚本运行app相关推荐

  1. Jenkins构建自动化脚本执行无界面解决方法

    场景: jenkins构建selenium自动化用例的时候,会有jenkins自带服务后台运行自动化脚本,可无界面运行IE.Chrome.Firefox. 然而运行IE浏览器时候(IE比较特殊),Je ...

  2. jenkins构建自动化脚本遇到的问题及解决方式

    jenkins配置: 1.构建一个自由风格的项目填写构建步骤 例如:D:\Python3.7\python.exe (python安装路径)C:\Users\P310\Desktop\NewUITes ...

  3. UI自动化脚本运行找不到元素解决方案

    UI自动化解密之元素定位后为啥放在脚本里面找不到 我们是否在浏览器F12下面,进行右键Copy Element Xpath/Css 时,放在浏览器里面直接就能够正确查找,为什么放在脚本里面就找不到了呢 ...

  4. 自动化脚本编程框架(代码篇)

    书接上文,本篇以C语言为例,介绍一下自动化脚本的编程框架(篇末有整体代码). 框架的中心思想: 以函数指针形式,从脚本数组中按顺序依次执行脚本函数并判断执行结果. 若判断结果执行正确则指针向后偏移到下 ...

  5. linux执行shell过程日志,Android之在linux终端执行shell脚本直接打印当前运行app的日志...

    1.问题 我们一般很多时候会需要在ubuntu终端上打印当前运行app的日志,我们一般常见的做法是 1).获取包名 打开当前运行的app,然后输入如下命令,然后在第一行TASK后面的就可以看到包名 a ...

  6. #Android--无需 ROOT 实现自动化脚本,让你的手机拥有无穷的可能(非宣传 APP)

    #Android--无需 ROOT 实现自动化脚本,让你的手机拥有无穷的可能(非宣传 APP) 引言 下载工具 写在最后 引言 在上一期 #Android–使用Android手机运行一个完整Ubunt ...

  7. 【移动测试ios】编写和运行自动化脚本

    [移动测试iOS]编写和运行自动化脚本 准备工作 编写和运行自动化脚本 准备工作 1.使用Xcode打开要运行的程序 2.选择将要运行的程序和模拟器设备 3.command+r运行 4.打开并启动ap ...

  8. Linux下运行python自动化脚本

    前言 确认搭建自动化环境的服务是哪一台,确定后拿到服务ip.用户名.密码连接上服务即可开始以下步骤 一.python3安装 1.yum安装依赖包 yum -y install zlib-devel b ...

  9. pythonapp自动化_移动App Appium自动化测试教程Appium+Python 【2018年新】

    资源介绍 资源名称:移动App Appium自动化测试教程Appium+Python [2018年新] 资源目录: 第一章:App自动化测试概述 1-1 Appium自动化课程简介 1-2 课程大纲 ...

最新文章

  1. 大规模业务服务器开发总结
  2. 谷歌“夜莺计划”曝光:秘密采集数百万医疗隐私数据!医生患者毫不知情
  3. 使用训练数据结构代替注意力机制
  4. LUOGU 9月 月赛
  5. Android自动播放下一曲,环信Android自动播放下一条语音
  6. 移动架构11_建造者模式
  7. 零基础也能学会的——用Python制作超级玛丽小游戏
  8. 基于springboot+mybatis设备管理后台,可直接上线项目!
  9. CRMEB知识付费系统安装搭建【常见问题-14.安装无法修改写入权限】
  10. 【电商运营】京东数字化运营【流量篇】
  11. 手残转化了动态磁盘后如何转化回基本磁盘
  12. django从零开始引入bootstrap模板
  13. 水塘抽样算法(Reservoir Sampling Algorithm)
  14. java 检查日期是否正确_Java检查日期格式是否正确
  15. Python 基于tkinter的GUI编程
  16. 模板类的动态模板特化
  17. 小心!基于UEFI引导的病毒,重装系统也清除不了
  18. 《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一2.3 VIPLE的使用...
  19. 数据库专升本考试大纲
  20. 计算机组织与结构poc,CPU漏洞原理详解以及POC代码分享

热门文章

  1. python fsolve说明_在python中使用fsolve时形状不匹配
  2. 安卓手机阅读器_罗辑思维旗下得到APP发布全新阅读器,7.8英寸安卓9.0系统
  3. GPFS无法写入大文件
  4. 西门子200PLC中断指令
  5. 主编编辑器如何新建文章?
  6. 分布式数据访问层(DAL)
  7. 51单片机学习笔记2 仿真器的使用及STC89Cxx简介
  8. DR_CAN的学习笔记--1现代控制理论
  9. 卷积、自相关函数、功率谱密度
  10. 一文了解无功功率、无功补偿、功率因数