自动化测试,如果没有持续构建,就算不上真正意义的自动化测试。所以,会写IOS自动化以后,首先做的,就是考虑如何在jenkins完成自动化构建。
完成持续构建,需要完成以下几步:
1、在项目中,生成gradle自动化建构工具的配置文件build.gradle。
build.gradle文件中的内容如下:
apply plugin: 'java'
sourceSets {
main.java.srcDirs = ['tests/java']
main.resources.srcDirs = ['tests/java']
test.java.srcDirs = ['tests/java']
test.resources.srcDirs = ['tests/resources']
}
dependencies {
compile fileTree(dir: 'libs', include: 'selenium-server-standalone-2.45.0.jar')
compile fileTree(dir: 'libs', include: 'org.hamcrest.core_1.3.0.v201303031735.jar')
compile fileTree(dir: 'libs', include: '*.jar')
}
其中,tests/java为测试包所在的代码目录。
2、启动Appium服务器
/Applications/Appium.app/Contents/Resources/node_modules/.bin/appium --address "127.0.0.1" --debug-log-spacing --platform-version "9.3" --platform-name "iOS" --app "/Users/********/Downloads/iOS应用文件名.ipa" --udid "设备的UDID" --show-ios-log --device-name "iPhone 6" --native-instruments-lib
里面的部分信息,需要根据自己的iOS真机参数、版本安装文件等进行配置。
3、在jenkins中建立job,并填写必要信息,最主要的是在execute shell中,填写如下命令
cd $WORKSPACE
ideviceinstaller -i ~/Downloads/iOS应用版本名.ipa
./griddlew test --tests='*.MedAdd'
./gradlew test --tests='*.MedAddAge'
./gradlew test --tests='*.MedAdd*'
./gradlew XTest
简单说明一下用例的选择:
1)如果确定执行某个用例,可以直接写用例的全名。如'*.MedAdd'、'*.MedAddAge';其中,“*.”代表前面的包名。
2)如果执行多个用例,可以使用正则表达式。我们用'*.MedAdd*',可执行MedAdd、MedAddAge等匹配“MedAdd”的所有类。
3)如果在build.gradle中填写如下信息:
task XTest( type:Test ) {
include 'com/xsltest/testcase/testcase/MedAddAge**'
include 'com/xsltest/testcase/testcase/MedAdd**'
}
那么,可以运行./gradlew XTest来运行包含的用例。
4、连上匹配的真机,运行jenkins任务
运行jenkins任务后,基本就可以进行ios持续构建了。其他的,可以根据jenkins的多种构建形式,建立丰富多样的iOS持续构建。