去年开始研究自动化测试,今年接着来,去年将整个自动化的环节都跑了一遍,今年尝试使用shell将所有环节都串起来,这样节省测试时间。
主要分为几个大的模块Xcode jenkins appuim pycharm这几个环节。
其中:
1、xcode自动打.ipa和.app包(.ipa真机运行;.app模拟器运行),WDA驱动。
2、jenkins自动化平台核心通过它进行整体的调度
3、appuim自动化测试工具
4、pycharm自动化脚本执行工具
我在上篇文章中已经将appuim的安装教程写完了,安装jiekins的教程满天飞,不用单独写了。我介绍下我写的打包脚本
#!/bin/bash
# 工程名
APP_NAME="ArtVideoWB" #替换成你的工程名
# 证书
#CODE_SIGN_DISTRIBUTION="iPhone Developer:chaoyang hu (Beijing Yiqi Network Technology Co., Ltd)" # 打包所用签名证书
CODE_SIGN_DISTRIBUTION="iPhone Developer:ling gan (LYL3GBB64K)" # 打包所用签名证书
# info.plist路径
project_infoplist_path="ArtVideoWB copy-Info.plist"
#project_infoplist_path="ArtVideoWB copy-Info.plist"
#取版本号
bundleShortVersion=$(/usr/libexec/PlistBuddy -c "print CFBundleShortVersionString" "${project_infoplist_path}")
#取build值
bundleVersion=$(/usr/libexec/PlistBuddy -c "print CFBundleVersion" "${project_infoplist_path}")
#获取日期
#DATE="$(date +%Y%m%d)"
ADHOC_PLIST_PATH="adhoc.plist"
echo "=================${ADHOC_PLIST_PATH}================="
#要上传的ipa文件路径
IPA_PATH="${APP_NAME}_${bundleVersion}"
#创建IPA路径文件夹
mkdir $IPA_PATH
#archive文件路径
ARCHIVE_PATH="${IPA_PATH}/${APP_NAME}_${bundleVersion}.xcarchive"
echo "=================${ARCHIVE_PATH}================="
#进入工程目录
#cd $HOME/Home/workspace/${JOB_NAME}/${APP_NAME}
# xcodebuild -list命令可以查看 工程的:Targets、Configurations、Schemes
echo "=================清理工程================="
xcodebuild clean -target "${APP_NAME}" -configuration 'Release'
echo "=================解锁钥匙串================="
#解决:codesign"seckey api returned: -25308,(null)"
# *** 是一般为电脑登录密码
security unlock-keychain -p "1234567890 " "${HOME}/Library/Keychains/login.keychain"
echo "=================生成xcarchive文件================="
# 在xcode中设置scheme为shared,否则可能出现工程无scheme的错误
# 还可以添加其他参数,不设置的都是默认使用项目Build Settings里面的配置,包括 CODE_SIGN_IDENTITY 和 PROVISIONING_PROFILE
xcodebuild archive -workspace "${APP_NAME}.xcworkspace" -scheme "${APP_NAME}" -sdk iphoneos -configuration "Release" -archivePath "${ARCHIVE_PATH}"
echo "=================打包IPA================="
xcodebuild -exportArchive -archivePath "${ARCHIVE_PATH}" -exportPath "${IPA_PATH}" -exportOptionsPlist "${ADHOC_PLIST_PATH}"
我今天串流程时发现build脚本出错

后来发现遇到这类问题可以先手动运行xcode将看看有没有问题,一般手动调整下xcode能解决。
在导出ipa包的时候需要有一个配置的plist文件,但是我其实也不知道该写些什么,但是在我们手动打包的时候应该都见过下面的一个文件
目光集中在我标红区域,这个就是我们需要的plist文件,那么就简单了我们可以手动打个包,然后将plist文件拿过去直接用,这个方式要比你手动设置来的快的多。以后只需要修改证书文件
我将脚本集成到jenkins中

然后运行,发现还是

但是我脚本单独运行的时候没问题,后来检查发现,每次我拉完代码,工程的证书文件就没了,还是需要在此配置,但是按照流程来说这个一定是不行的。所以我在想办法ing.....
目前思路一个是我在jenkins中的证书配置又问题,还有一个就是git的问题(原因在于我们正常拉代码的时候时不需要再次配置的),还有就是我在写脚本的时候少写了一步配置证书(我在手动执行脚本的时候自己在项目中配置了证书,所以是可以的)
按照这几个思路去调整下,其实我感觉这三种方式都可以,修改脚本比较简单,所以我们先看看修改脚本的方式
这里没弄好,先放下
打完包就是通过ideviceinstaller 安装程序
ideviceinstaller -i ArtVideoWB.ipa -o 2453c7ddea9ac8d4ff9bdf44c7be010428409a55
然后执行自动化测试脚本就好了
现在整体流程虽然是通了,但是如何让项目进行并行测试,如何获取iOS性能指标还是个问题。
网友评论