最近一直再研究 jenkins 的自动化集成测试,设计思路:

  1. 构建 app 前做代码静态检测
  2. 检测成功后,自动构建 app
  3. 通过脚本将服务端的 app 自动推送到个人主机指定目录
  4. 通过 jenkins 自动启动 appium 服务,终端机自动安装指定目录的 app,并运行 testNG 的相关脚本
  5. 触发邮件,报告发送

好了,接下来看看具体是怎么操作的吧!

第一:先看下 jenkins 的项目配置


第二:远程 app 推送至本地指定目录

  1. 将远程服务端的 apk 文件夹共享
  2. 将共享的 apk 目录映射为本地的某个网络盘符 X
  3. 通过脚本将 X 盘符下的文件拷贝到指定目录
  # Filename: CopyPictures.py
  # coding=utf8
  import os
  import time,shutil  
  from os import listdir
  from os.path import isdir
  HOST = '192.168.1.82'
  PORT = 8080
  source_dir = 'X:\\'
  target_dir = 'E:\\DONG\\appium-testng\\apps'
  now = time.strftime('%Y%m%d')
  k=0
  filelist = listdir(source_dir)  #获取源目录下所有的文件
  print(filelist)

for name in filelist :
    srcFilename = source_dir + '\\' + name
    srcFilename = '"' + srcFilename + '"'
    desFilename = target_dir + '\\' + name
    desFilename = '"' + desFilename + '"'
    print 
    copy_command = "copy %s %s" % (srcFilename, desFilename)
    print copy_command
    if os.system(copy_command) == 0:
        k = k + 1
        print 'Successful backup to copy from', srcFilename, 'to' ,desFilename 
    else:
        print 'Fail to copy', srcFilename, 'to', desFilename
print 'total copy', k, 'files' 

第三:重点讲解下如何在 DOS 下运行 testNG 的脚本集

  1. 进入 eclipse 的工作目录,将 bin 下所有的.class 文件以及 testng.xml 压缩为.zip 包(注意:不包含 bin 文件夹)
  2. 然后将.zip 包的后缀名改成.jar 包
  3. 新建一 A 目录,拷入.jar 包和 testng.xml
  4. 将 A 目录配置为 classpath 的环境变量
  5. 导出 eclipse 中的程序包,否则运行 testng.xml 时会提示找不到程序包。(eclipse 工作根目录-->Export-->Java-->Runnable JAR file--> launch configuration-->Copy required libraries into a sub-folder next to the generated JAR)-------- 注意:launch configuration 的文件必须含 main 函数,且格式必须为 public static void main(String [] args);另外需注意导出路径一定要为 A 目录,导出成功后会在 A 目录自动创建一 lib 文件夹,比如 qshc_lib,qshc.jar

第四:bat 脚本编写

@echo off
@start appium -a 127.0.0.1 -p4723 -U32308bd2a27c7fb3  
ping /n 3 127.1 >nul
set LIB=C:\automation
set CLASSPATH=%LIB%\auto.jar;%LIB%\qshc.jar
java org.testng.TestNG %LIB%\testng.xml

第五:就可以执行 jenkins 的构建了,app 构建成功后,会自动执行 CMD 脚本,启动 appium 服务,执行 testNG 的用例集

抛出一问题:jenkins 邮件触发功能,我目前只能用系统自带的邮件功能,而扩展邮件的插件配置后总是没起作用,尤其是 developer 角色的邮件发送,请指导的人告知下,我先截个我配置的图给大伙看看




↙↙↙阅读原文可查看相关链接,并与作者交流