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源码打包,部署,自动化测试全流程的主要内容,如果未能解决你的问题,请参考以下文章

4Jenkins持续集成之maven编译

Jenkins持续集成使用指南

Jenkins从入门到精通

Jenkins从入门到精通

CI/CD持续集成与持续交付(上)-------- git,gitee远程共有仓库和gitlab私有仓库,jenkins

CI/CD持续集成与持续交付(上)-------- git,gitee远程共有仓库和gitlab私有仓库,jenkins