python自动化持续集成:4.Jenkins集成APP源码打包,部署,自动化测试全流程
Posted new nm个对象
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python自动化持续集成:4.Jenkins集成APP源码打包,部署,自动化测试全流程相关的知识,希望对你有一定的参考价值。
一.使用界面配置任务方式集成
1.APP源码打包原理
源码github地址:https://github.com/princeqjzh/AndroidSampleApp
1.1打包依赖环境
- 安装:SDK(本例以Windows系统为例,Windows系统下安装sdk,在appium章节已讲解。Linux系统安装sdk可以参考以下方式)
(1)下载sdk:http://tools.android-studio.org/index.php/sdk/
(2)节点机下新建目录:/usr/local/sdk,并将下载的sdk安装包上传到该目录后解压
tar -zxvf android-sdk_r24.4.1-linux.tgz
(3)配置环境变量
# 编辑环境变量文件
vi /etc/profile
# 添加如下内容
export ANDROID_HOME=/usr/local/sdk/android-sdk-linux
export PATH=${PATH}:${ANDROID_HOME}/tools
export PATH=${PATH}:${ANDROID_HOME}/platform-tools
# 重新加载环境变量
source /etc/profile
# 检验
android -h
# 更新sdk
android update sdk --no-ui
- 安装jdk
参考前面章节内容
1.2 源码打包流程
配置好sdk和jdk就可以进行源码打包了。
第一步:将代码源文件上传到节点目录
第二步:进入源码文件目录
第三步:执行打包命令
gradlew clean assembleDebug
第四步:到该目录AndroidSampleApp\\app\\build\\outputs\\apk\\debug下查看apk文件是否生成
2.APP安装原理
源码打包ok后就可以安装了
2.1 依赖环境:
sdk+jdk+真机或模拟器
这里以模拟器为例。前面已经将sdk和jdk部署ok了,这里就不重复讲解了。
2.2 安装流程
安装:
# adb install + apk文件路径
adb install E:\\project\\AndroidSampleApp\\app\\build\\outputs\\apk\\debug\\app-debug.apk
卸载:
adb shell dumpsys activity top # 在app启动状态下,使用这种方式获取app包名
adb uninstall com.appsflyer.androidsampleapp # adb uninstall + app包名,卸载app
3.app自动化测试测试
3.1 依赖环境
依赖环境:sdk+jdk+appium+模拟器
这些环境安装在前面appium章节已讲解
3.2 测试代码
import time
from appium import webdriver
class TestAppSample:
def setup_class(self):
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['deviceName'] = '127.0.0.1:21503 device'
desired_caps['appActivity'] = '.MainActivity'
desired_caps['appPackage'] = 'com.appsflyer.androidsampleapp'
self.driver =webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)
def teardown_class(self):
self.driver.quit()
# 因为我们的app里面只有一个主页面,并没有写任何内容。所以这里以print来代替app中的操作
def test_demo(self):
"""测试用例"""
time.sleep(5)
print('test app success')
4.使用Jenkins集成
每一部分的工作原理了解后,我们就可以开始使用Jenkins来集成这一系列操作了。
4.1构建拉取源码并打包任务
当这里我们的拉取源码+打包任务就完成了。
4.2 自带部署安装app
4.3 集成自动化测试
到这里我们的源码打包,发布,自动化测试流程就拉通了。当然你可以加上测试报告,邮件发送等功能。因为之前案例已经讲解过,这里就不重复讲解了。
二.pipeline方式集成实战
前面讲的使用界面配置的方式,构建项目时比较繁杂且不易维护。所以我们一般使用pipeline文件方式来配置Jenkins流水线。
1.任务目标
2.环境依赖
SDK,JDK,appium,python,模拟器或者真机
3.构建任务
(1).准备pipeline文件
pipeline{
agent {
# 设置运行节点
label 'salve1-windows'
}
stages{
stage('安卓程序源码同步') {
steps {
# 执行bat命令
bat"""
# 创建目录,用于放置git拉取的源码
md AndroidSampleApp || echo "the dir AndroidSampleApp is exited"
"""
# 拉取源码,并放置在本地目录AndroidSampleApp
dir("AndroidSampleApp"){
git credentialsId:'gitee_ouyi', branch:'master', url:'git@gitee.com:xxx/android-sample-app.git' #app源码仓库地址
}
}
}
stage('安卓编译打包') {
steps {
bat"""
cd AndroidSampleApp
gradlew clean assembleDebug
"""
}
}
stage('安卓部署') {
steps {
bat"""
cd AndroidSampleApp
set pwd=%cd%
adb uninstall com.appsflyer.androidsampleapp || echo "the app not exit, not need uninstall"
adb install %pwd%/app/build/outputs/apk/debug/app-debug.apk
"""
}
}
stage('自动测试程序源码同步') {
steps {
bat"""
md test_appsample || echo 'the dir test_appsample is exited'
"""
dir("test_appsample"){
git credentialsId:'gitee_ouyi', branch:'master', url:'git@gitee.com:xxx/test_appsample.git' # 自动化代码仓库地址
}
}
}
stage('运行自动化测试') {
steps {
bat"""
cd test_appsample
pip install -r requirements.txt
python test_appsample.py
"""
}
}
}
post {
success {
# 将apk文件发布
archiveArtifacts artifacts: 'AndroidSampleApp/app/build/outputs/apk/debug/app-debug.apk'
}
always {
# 发送邮件
emailext body: '$DEFAULT_CONTENT', recipientProviders: [[$class: 'RequesterRecipientProvider']], subject: '$DEFAULT_SUBJECT'
}
}
}
以上是关于python自动化持续集成:4.Jenkins集成APP源码打包,部署,自动化测试全流程的主要内容,如果未能解决你的问题,请参考以下文章
CI/CD持续集成与持续交付(上)-------- git,gitee远程共有仓库和gitlab私有仓库,jenkins
CI/CD持续集成与持续交付(上)-------- git,gitee远程共有仓库和gitlab私有仓库,jenkins