'APP Test/테스트 환경구성'에 해당되는 글 4건

E2E 테스를 위해서는 실제 모바일 테스트 디바이스가 필요하다

아래의 설정으로 Android Stuido 에뮬레이터에서 실행하는 방법을 진행하였다.

 

[사전설정]

Java installed on system

JAVA_HOME is set in environment variables

command to check : java -version

200 MB to 1 GB of free space

 

Install android studio

아래의 페이지에서 설치 ㄱㄱ

https://developer.android.com/studio?hl=es

 

Download Android Studio and SDK tools  |  Android Studio

developer.android.com

 

Set environment variables

설치 후 아래 환경 변수 path 설정 필수

SDK위치/platform-tools

 

 

 

에뮬레이터 실행 관련

상단에 "AVD Manager" 클릭

 

하단에 "Create Virtual Device" 클릭

자세한 설명은 아래 URL 참고

https://mainia.tistory.com/5301

 

안드로이드 스튜디오 에뮬레이터 생성과 실행시키는 방법

안드로이드 스튜디오 에뮬레이터 생성과 실행시키는 방법 환경: Android Studio 안드로이드 스튜디오에서 개발한 소스를 테스트해 보기 위해서는 에뮬레이터가 있어야 합니다. 에뮬레이터는 지금��

mainia.tistory.com

 

상단에 표시 클릭하면 안드로이드 에뮬레이터가 실행된다

 

Run command adb devices

adb = android debug bridge

Check your device id displayed

 

'APP Test > 테스트 환경구성' 카테고리의 다른 글

Appium 구축  (0) 2020.08.13
JENKINS 설정 및 테스트  (0) 2020.08.13
빌드 환경 구성(Jenkins-Android-Docker)  (0) 2020.08.10
블로그 이미지

정신차려이각박한세상속에서

,

[사전확인]

Native App, Web App, Hybrid App

출처 : https://m.blog.naver.com/acornedu/221012420292

 

 

What is Appium ?

Appium은 모바일 애플리케이션의 테스트 자동화를 가능하게 해주는 오픈소스 라이브러리이다. native, hybrid, mobile web 등 모든 타입의 모바일 애플리케이션의 테스트 자동화를 가능하게 해준다. 자동화된 테스트는 실제 디바이스나 에뮬레이터, 혹은 시뮬레이터에서 실행될 수 있다. 

 

 

 

How Appium Works

앱피움은 Client - Server 아키텍쳐로 동작한다

Appium 서버는 Node.js로 작성되었으며 WebDriver 세션을 생성하고 관리하는 HTTP 서버이다.

클라이언트는 아래의 언어를 지원한다

Java
Python
C#
Javascript
Ruby
PHP
Robot Framework

 

[Desired Capabilities]

자동화 세션의 종류를 서버에 알리기 위해 Appium 서버로 전송되는 일련의 키와 값입니다.

관련 설명은 아래 URL 참고

http://appium.io/docs/en/writing-running-appium/caps/

 

Desired Capabilities - Appium

From here you can search these documents. Enter your search terms below.

appium.io

 

 

[How to install appium on Windows]

Check if node.js is installed on your system

node --version
npm --version

 

Download node.js installer 

https://nodejs.org/en/download/

 

Download | Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

Run the installer & install node.js & npm

 

Check if node.js & npm are installed

node --version npm --version

where node

where npm

 

Install appium with node.js

npm install -g appium

 

Check if appium is installed

appium -v
where appium

 

Start appium

appium

 

 

[How to install appium with with Appium Desktop Client]

Download appium desktop client

http://appium.io/

 

Appium: Mobile App Automation Made Awesome.

Appium Philosophy Appium is built on the idea that testing native apps shouldn't require including an SDK or recompiling your app. And that you should be able to use your preferred test practices, frameworks, and tools. Appium is an open source project and

appium.io

 Install appium desktop client

 Start appium through appium desktop client

 

 

 

How to check installation & dependencies (appium-doctor)

Install appium-doctor

https://github.com/appium/appium-doctor

 

appium/appium-doctor

Tool to verify appium installation. Contribute to appium/appium-doctor development by creating an account on GitHub.

github.com

npm install appium-doctor -g
appium-doctor -h
appium-doctor --android

 

[앱피움 관련 설명 참고 URL]

https://domich.wordpress.com/2016/01/11/appium-%EC%95%A0%ED%94%BC%EC%9B%80-%ED%94%84%EB%A1%9C%ED%8C%8C%EC%9D%BC%EB%A7%81-%EA%B8%B0%EB%B0%98-ui-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%9E%90%EB%8F%99%ED%99%94-%EB%8F%84%EA%B5%AC/

 

안드로이드 테스팅의 효자손 “Appium(앱피움)” 파헤치기 1

[마이크로 소프트웨어 기고, 2015년 7월 31일] 안드로이드 테스팅의 효자손 “Appium(앱피움)” 파헤치기 1 -앱피움 개요 -앱피움의 아키텍쳐 -개발환경 구성 ->안드로이드 앱 개발 환경 구성하기 ->��

domich.wordpress.com

 

 

'APP Test > 테스트 환경구성' 카테고리의 다른 글

Android Stuido Emulator  (0) 2020.08.13
JENKINS 설정 및 테스트  (0) 2020.08.13
빌드 환경 구성(Jenkins-Android-Docker)  (0) 2020.08.10
블로그 이미지

정신차려이각박한세상속에서

,

[사전작업]

빌드 환경 구성

테스트 환경 구성

 

 

테스트 JOB 생성

E2E 테스트이기 때문에 환경을 Jenkins Agent(윈도우)에서 실행하도록 아래와 같이 추가

General

빌드 JOB 결과 내려받은 APK 파일 위치를 지정해놓은 테스트 환경에 맞춰 변경

Build#1

 

테스트 실행 스크립트 작성

Build#1

 

파이프라인 생성

아래와 같이 파이프 라인 생성

필자는 테스트 결과를 라인으로 받고 싶어서 아래와 같이 수정함

node {
    try{
        stage("Build"){
            build job: 'build'
        }
        stage("TestAPP"){
            build job: 'test'
            currentBuild.result = 'SUCCESS'
        }
    }catch (err) {
        currentBuild.result = 'FAILURE'
    }
  
    stage 'Notify'
        notifyLINE('DRYSTdTkv4OsQAXOsJoChPmUTqj9aR99wwIv3OFCdJl', currentBuild.result)
}
  
def notifyLINE(token, result) {
    def isFailure = result == 'FAILURE'
      
    def url = 'https://notify-api.line.me/api/notify'
    def message = "Result is ${result}. \n${env.BUILD_URL}"
    def imageThumbnail = isFailure ? 'FAILED_IMAGE_THUMBNAIL' : ''
    def imageFullsize = isFailure ? 'FAILED_IMAGE_FULLSIZE' : ''
      
    sh "curl ${url} -H 'Authorization: Bearer ${token}' -F 'message=${message}' -F 'imageThumbnail=${imageThumbnail}' -F 'imageFullsize=${imageFullsize}'"
}

 

 

테스트

생성된 파이프라인 실행

Build > Test 순으로 동작함을 해당 에뮬레이터에서 확인 및 라인알람 확인

 

 

Jenkins 라인 연동 관련 참고 URL

https://notify-bot.line.me/doc/en/

 

LINE Notify

LINE Notify allows you to send web notifications from GitHub, IFTTT, Mackerel, and more directly to your LINE chats.

notify-bot.line.me

https://engineering.linecorp.com/ko/blog/using-line-notify-to-send-messages-to-line-from-the-command-line/

 

커맨드 라인에서 LINE에 메시지를 보낼 수 있는 LINE Notify - LINE ENGINEERING

들어가며 LINE Notify 개발을 담당하고 있는 Watanabe입니다. 개발자를 대상으로 LINE Notify를 사용하여 커맨드 라인에서 메시지를 보내는 방법을 소개하겠습니다. 기존에는 시스템적으로 LINE에 메시지

engineering.linecorp.com

 

'APP Test > 테스트 환경구성' 카테고리의 다른 글

Android Stuido Emulator  (0) 2020.08.13
Appium 구축  (0) 2020.08.13
빌드 환경 구성(Jenkins-Android-Docker)  (0) 2020.08.10
블로그 이미지

정신차려이각박한세상속에서

,

사전 작업

1. docker & docker-compose 설치

2. 볼륨 데이터 권한 설정

mkdir /data/jenkins-android-docker
sudo chown -R 1000:1000 /data/jenkins-android-docker

 

docker-compose를 이용한 실행

아래 URL 을 참고하여 필자는 docker-compose를 아래와 같이 작성하여 진행하였다

https://github.com/WindSekirun/Jenkins-Android-Docker

 

WindSekirun/Jenkins-Android-Docker

🐳 Docker image for Jenkins with Android. Contribute to WindSekirun/Jenkins-Android-Docker development by creating an account on GitHub.

github.com

[root@localhost ~]# cat docker-compose.yml
version: '3.1'

services:

  jenkins:
    image: windsekirun/jenkins-android-docker:1.1.2
    container_name: jenkins
    ports:
      - "8080:8080"
      - "50000:50000"
    volumes:
      - "/data/jenkins-android-docker:/home/jenkins_home"
      - "/var/run/docker.sock:/var/run/docker.sock"
	restart: always

[root@localhost ~]# docker-compose up
      
      

이후 젠킨스 초기 비번 등록 및 계정 생성은 생략

 

 

[Jenkins 빌드 관련 설정]

Jenkins 환경 변수 설정

Jenkins에 ANDROID_HOME 설정

Jenkins 관리 -> 시스템 설정 -> Global properties -> Environment variables (체크)

이름 : ANDROID_HOME
값 : /opt/android-sdk-linux

위의 값은 아래의 명령어로 관련 환경 변수 확인 가능(위의 URL에서 해당 파일 참고)

[root@localhost Jenkins-Android-Docker-master]# cat Dockerfile |grep ANDROID_HOME
ENV ANDROID_HOME /opt/android-sdk-linux

 

 

Jenkins JOB 생성 및 설정

안드로이드 프로젝트 등록

새로운 Item -> "Enter an item name" 프로젝트 이름작성, "Freestyle Project" 선택 후 OK

 

Git 서버 설정

소스 코드 관리에 "Git"선택

Repository URL에 자신의 Git 주소를 적는다.

Credentials는 "Add"를 눌러서 자신의 레포에 해당하는 아이디와 비밀번호를 적는다.

Git > Repositories > Add

 

Build, Build 후 조치 설정

"Add build step"을 눌러서 "Invoke Gradle script"를 선택

"Use Gradle Wrapper" 선택 후 Tasks에 "clean assemble" 작성

"빌드 후 조치 추가"를 눌러서 "Archive the artifacts"를 선택

Files to archive에 "*/.apk" 작성

 

Publish Over FTP 또는 Publish Over SSH Plugin을 이용하여 빌드된 apk 파일 전송(사전 설치 필요)

Jenkins > 환경설정

 

 

 

빌드가 잘되는지 테스트해보자!

아래의 "실행" 버튼을 누르면 빌드가 진행되고 아래의 경로에 apk 파일 생성 확인

 

 

 

[삽질의 흔적들]

1. SDK 라이센스 오류 관련

일부 안드로이드 라이센스 관련해서 오류가 나서 빌드가 실패 할 수도 있다

[젠킨스 오류 전문]

Could not determine the dependencies of task ':app:compileReleaseJavaWithJavac'.
> Failed to install the following Android SDK packages as some licences have not been accepted.
     build-tools;29.0.2 Android SDK Build-Tools 29.0.2
  To build this project, accept the SDK license agreements and install the missing components using the Android Studio SDK Manager.
  Alternatively, to transfer the license agreements from one workstation to another, see http://d.android.com/r/studio-ui/export-licenses.html

  Using Android SDK: /opt/android-sdk-linux

[해결]

젠킨스 컨테이너 접속하여 아래 명려어 실행하여 라이센스 관련 조치하자

yes | sdkmanager --licenses

 

 

[참고]

추가적으로 아래와 같이 Webhook을 설정해주면 깃허브에서 push되면 자동으로 빌드하도록 구성 할 수있음

https://yaboong.github.io/jenkins/2018/05/14/github-webhook-jenkins/

 

Jenkins 로 빌드 자동화하기 1 - GitHub 에 push 되면 자동 빌드하도록 구성

개요 GitHub private repository 에 소스를 push 했을때, Jenkins 서버에 webhook 을 날려서 자동으로 빌드가 되도록 세팅하는 과정을 알아본다.

yaboong.github.io

 

 

 

 

 

참고URL

: https://kkensu.tistory.com/59

: https://stackoverflow.com/questions/38096225/automatically-accept-all-sdk-licences

'APP Test > 테스트 환경구성' 카테고리의 다른 글

Android Stuido Emulator  (0) 2020.08.13
Appium 구축  (0) 2020.08.13
JENKINS 설정 및 테스트  (0) 2020.08.13
블로그 이미지

정신차려이각박한세상속에서

,