Python 3+Appium+안 드 로 이 드 시 뮬 레이 터 앱 자동화 테스트 및 테스트 보고서 생 성

2020 년 4 월
설정 자동화 테스트 라 는 프레임 워 크 가 조금 번 거 로 운 점 을 감안 하여 많은 동료 들 이 설정 하 는 과정 에서 항상 구 덩이 를 밟 습 니 다.최근 에 간략화 판 입문 튜 토리 얼 을 썼 습 니 다.안 드 로 이 드 SDK 를 괴 롭 히 고 싶 지 않 은 동료 들 은 그 글 로 이동 할 수 있 습 니 다.https://www.jb51.net/article/169763.htm
개술
본문 은 주로 다음 과 같은 몇 부분 으로 나 뉜 다.
  • Python 3 설치
  • Python 3 의 Appium 라 이브 러 리 설치
  • Android SDK 설치
  • JDK 설치
  • Appium 설치
  • 시 뮬 레이 터 설치
  • 테스트 스 크 립 트 를 작성 하고 테스트 보고 서 를 생 성 합 니 다
  • 프로젝트 예제 다운로드 주소:https://github.com/lixk/apptest
    본문
    1.Python 3 설치
    파 이 썬 홈 페이지 에 직접 접속https://www.python.org/,최신 버 전 을 다운로드 하면 됩 니 다.
    在这里插入图片描述
    그리고 설치 할 때 설치 경 로 를 주의 하 세 요.예 를 들 어 제 설치 경로D:\Python37는 다음 에 이 설치 경 로 를 사용 할 것 입 니 다.
    2.Python 3 의 Appium 라 이브 러 리 설치
    Python 설치 디 렉 터 리 를 열 고Scripts폴 더 를 찾 아 클릭 합 니 다.예제:
    在这里插入图片描述
    주소 표시 줄 에 입력cmd하고 차 로 돌아 가 콘 솔 을 엽 니 다.
    在这里插入图片描述
    콘 솔 에 명령pip install Appium-Python-Client을 입력 하고 차 로 돌아 갑 니 다.
    在这里插入图片描述
    다음 그림 의 힌트 를 보면 설치 가 성공 했다 는 것 을 나타 낸다.
    在这里插入图片描述
    3.안 드 로 이 드 SDK 설치
    나 는 괴 롭 히 기 귀찮아 서 안 드 로 이 드 스튜디오 를 직접 다운로드 했다.
    다운로드 주소
    https://developer.android.com/studio/#downloads
    在这里插入图片描述
    다운로드 완료 설치 시작
    在这里插入图片描述
    만약 에 자체 테이프 의 시 뮬 레이 터 를 설치 해 야 한다 면 이 체크 를 선택 한 다음 에 Next 를 선택 하고 그 다음 에 설치 경 로 를 선택 하 십시오.예 를 들 어 제 것 도D판 에 놓 습 니 다.
    在这里插入图片描述
    다음은 Next,SDK 를 선택 한 페이지 입 니 다.주의 하 세 요.
    在这里插入图片描述
    선택Custom하면 자신 이 좋아 하 는 부분 만 설치 할 수 있 고 다음 에 테 마 를 선택 할 수 있 습 니 다.물론 이것 은 나중에 Android Studio 에서 고 칠 수 있 습 니 다.
    在这里插入图片描述
    계속 Next,맞 춤 형 구성 요소 페이지 에 도착 합 니 다.다음 그림 입 니 다.
    在这里插入图片描述
    SDK 의 설치 경 로 를 설정 하 십시오.예 를 들 어 저 는D:\Android\SDK이 고 다음 에 Next..finish 를 계속 하 겠 습 니 다.그리고 느 린 다운로드 코너 에 들 어 갔 어 요.여기 서 천천히 다운로드 하 세 요.다운로드 가 끝나 면 돼 요.우 리 는 다음 절 로 들 어 갈 수 있다.
    4.JDK 설치
    여기 제 가 사용 하 는 것 은 JDK 8,다운로드 주소 입 니 다.
    https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
    프로 토 콜 을 받 아들 이 고 해당 플랫폼 을 선택 하여 다운로드 하면 됩 니 다.
    在这里插入图片描述
    그 다음 에 설치 과정 이 비교적 간단 하고 Next 이기 도 합 니 다.설치 경 로 를 선택 하 십시오.예 를 들 어 제 설치 경로D:\Java\jdk1.8在这里插入图片描述
    5.Appium 설치
    홈 페이지 주소http://appium.io/
    在这里插入图片描述
    다운로드 단 추 를 누 르 면 GitHub 다운로드 페이지 에서 해당 플랫폼 을 선택 하여 다운로드 합 니 다.
    在这里插入图片描述
    윈도 는 이 걸 로 하 겠 습 니 다.(바로 가기)
    설치 가 완료 되면 Appium,host,port 를 시작 합 니 다.기본 값 으로 설정 정 보 를 편집 합 니 다.
    在这里插入图片描述
    在这里插入图片描述
    그리고 저장 하고 다시 시작 하 는 단 추 를 누 르 고 첫 번 째Start Server단 추 를 누 르 면 볼 수 있 습 니 다.
    在这里插入图片描述
    실제 테스트 를 사용 하면 휴대 전 화 를 꽂 으 면 스 크 립 트 테스트 를 시작 할 수 있다.하지만 손 에 데이터 라인 이 없어 시 뮬 레이 터 를 사용 해 다음 절 이 생 겼 다.
    6.시 뮬 레이 터 설치
    여기 사 용 된 것 은 다운로드 주소 입 니 다.https://www.yeshen.com/안 드 로 이 드 자체 가 져 오지 않 는 이 유 는 몇 년 전에 한 번 시작 한 지 오래 되 었 고 다 시 는 사용 하지 않 았 던 것 을 기억 하기 때문이다.
    이것 도 할 말 이 없고 설치 경 로 를 주의 한 다음 에 다음 단계 로 가면 됩 니 다.
    설치 완료 후 간단 한 수정 을 진행 해 야 합 니 다.
  • 설치 디 렉 터 리 를 열 고bin디 렉 터 리(예:D:\Nox\bin
  • 에 들 어 갑 니 다.
  • 3 절 에 설 치 된 Android SDK 의adb.exe파일(예 를 들 어 내 가D:\Android\SDK\platform-tools디 렉 터 리 에 있 는)을 이 디 렉 터 리 에 복사 하여 존재 하 는adb.exe파일
  • 을 덮어 씁 니 다.
  • 이 디 렉 터 리 의nox_adb.exe파일 을 삭제 하고 다시 복사adb.exe하고 이름 을 바 꿉 니 다nox_adb.exe
  • 시 뮬 레이 터 시작
  • 이 디 렉 터 리 에서 콘 솔 을 열 고 실행nox_adb.exe connect 127.0.0.1:62001한 다음 에 실행adb devices하면 다음 과 같은 정 보 를 보면 성공 을 나타 낸다
  • .
    在这里插入图片描述
    시 뮬 레이 터 에 테스트apk파일 을 설치 합 니 다.계산 기 를 예 로 들 어apk파일 을 시 뮬 레이 터 에 끌 어 다 놓 으 면 됩 니 다.
    在这里插入图片描述
    방금 콘 솔 창 에 계속 입력aapt dump badging D:\apk\com.youdao.calculator-2.0.0.apk하 십시오.그 중에서D:\apk\com.youdao.calculator-2.0.0.apk은 테스트apk의 전체 경로 입 니 다.
    在这里插入图片描述
    패 키 지 를 설치 하 는 정보 가 인쇄 되 어 있 는 것 을 볼 수 있 습 니 다.빨 간 상자 에 있 는 두 개의 이름 을 기록 하고 잠시 후에 테스트 스 크 립 트 를 쓸 때 사용 해 야 합 니 다.
    시 뮬 레이 터 가 다시 시작 되면 5 단계nox_adb.exe connect 127.0.0.1:620017 을 실행 하고 테스트 스 크 립 트 를 작성 하 며 테스트 보고 서 를 생 성 해 야 합 니 다.
    1.테스트 용례 디 렉 터 리 만 들 기testcase,이 디 렉 터 리 에 파일 만 들 기test_app.py
    
    import time
    import unittest
    
    from appium import webdriver
    
    
    class MyTests(unittest.TestCase):
     #           
     def setUp(self):
      desired_caps = {'platformName': 'Android', #     
          'platformVersion': '4.4.2', #      
          'deviceName': '127.0.0.1:62001', #     。     , '  ->    ->    '   
          'appPackage': 'com.youdao.calculator', # apk   
          'appActivity': 'com.youdao.calculator.activities.MainActivity' # activity   
          }
      self.driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps) #   Appium
      self.driver.implicitly_wait(8)
    
     def test_calculator(self, t=500, n=4):
      """     """
      time.sleep(3)
      window = self.driver.get_window_size()
      x0 = window['width'] * 0.8 #   x  
      x1 = window['width'] * 0.2 #   x  
      y = window['height'] * 0.5 # y  
      for i in range(n):
       self.driver.swipe(x0, y, x1, y, t)
       time.sleep(1)
      self.driver.find_element_by_id('com.youdao.calculator:id/guide_button').click()
      for i in range(6):
       self.driver.find_element_by_accessibility_id('Mathbot Editor').click()
       time.sleep(1)
    
      btn_xpath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.support.v4.widget.DrawerLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.LinearLayout[2]/android.widget.LinearLayout/android.widget.LinearLayout[3]/android.view.View/android.widget.GridView/android.widget.FrameLayout[{0}]/android.widget.FrameLayout'
      self.driver.find_element_by_xpath(btn_xpath.format(7)).click()
      self.driver.find_element_by_xpath(btn_xpath.format(10)).click()
      self.driver.find_element_by_xpath(btn_xpath.format(8)).click()
      time.sleep(3)
    
     #           
     def tearDown(self):
      self.driver.quit()
    2.파일 생 성run.py
    
    import os
    import time
    import unittest
    
    from HTMLTestRunner import HTMLTestRunner
    
    test_dir = './testcase'
    discover = unittest.defaultTestLoader.discover(start_dir='./testcase', pattern="test*.py")
    
    if __name__ == "__main__":
     report_dir = './test_report'
     os.makedirs(report_dir, exist_ok=True)
     now = time.strftime("%Y-%m-%d %H-%M-%S")
     report_name = '{0}/{1}.html'.format(report_dir, now)
    
     with open(report_name, 'wb')as f:
      runner = HTMLTestRunner(stream=f, title="    ", description="                   ")
      runner.run(discover)
    테스트 보고 서 를 내 보 내 는 데 사 용 했 습 니 다HTMLTestRunner.그러나 Python 3 에 문제 가 있 는 것 같 습 니 다.인터넷 에서 두 개의 수정 후 Python 3 을 지원 하 는 것 을 찾 았 습 니 다.필요 하 다 면 본 논문 의 끝 에 있 는 예제 항목 에서 다운로드 할 수 있 습 니 다.
    3.실행run.py파일
    프로그램 이 실행 되면test_report디 렉 터 리 에서 테스트 보고 서 를 생 성 합 니 다.
    在这里插入图片描述
    在这里插入图片描述
    브 라 우 저 에서 열 면 보고서 내용,예 시 를 볼 수 있 습 니 다.
    在这里插入图片描述
    여기까지,전부 완성 하 겠 습 니 다.시간 이 있 으 면 Appium 의 사용,예 를 들 어 요소 포 지 셔 닝 등 을 보충 할 수 있 습 니 다.본 고 는 자동화 테스트 를 처음 배 운 학생 들 에 게 도움 이 되 기 를 바 랍 니 다.
    프로젝트 예제 다운로드 주소https://github.com/lixk/apptest
    엠 마,잔소리 가 많아 요.8 시인 데 저녁 도 안 먹 었 어 요.배 고 파 요.오늘 은 여기까지 할 게 요.
    2019/5/21 보충
    설정 이 위의 몇 단계 와 일치 하면 확실히 문제 가 없고 결 과 는 정상적으로 작 동 하지 않 습 니 다.그러면 문 제 는 시 뮬 레이 터 설정 에 있 을 수 있 습 니 다.다음은 제 쪽 시 뮬 레이 터 설정 을 보충 하 겠 습 니 다.
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    코드 중의'platformVersion': '4.4.2'이 바로 위의 그림 속 의 안 드 로 이 드 버 전이 다.
    아직도 많은 사람들 이 뛰 지 못 한다 면 시간 을 내 서 조작 영상 을 녹음 하 는 것 도 고려 해 보 자.하하 하.
    파 이 썬 3+Appium+안 드 로 이 드 시 뮬 레이 터 가 앱 자동화 테스트 를 실현 하고 테스트 보고 서 를 생 성 하 는 것 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 파 이 썬 3+Appium+안 드 로 이 드 시 뮬 레이 터 가 앱 자동화 테스트 를 실현 하 는 내용 은 예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!

    좋은 웹페이지 즐겨찾기