1. 程式人生 > >Appium+python自動化(三十八) - Appium自動化測試框架綜合實踐 - 框架簡介-助你衝擊高薪,迎娶白富美(超詳解)

Appium+python自動化(三十八) - Appium自動化測試框架綜合實踐 - 框架簡介-助你衝擊高薪,迎娶白富美(超詳解)

簡介

好久沒有更新部落格了,博友們是不是有點等不及了。不好意思啊,中秋節過後太忙了,這篇是好不容易抽點零碎時間寫的。從這一篇開始小夥伴或者童鞋們,就跟隨巨集哥的腳步,一步步的從無到有,從0到1的搭建一個完整的python+appium自動化測試框架。

框架背景

前面我們已經學習了Appium各種元素定位,手勢操作、資料配置、Pageobject設計模式等等。但是前面的功能都是比較零散的,沒有整體融合起來,實際專案實踐過程中我們需要綜合運用,那麼本章節我們將結合之前所學的內容,從0到1搭建一個完整的python+appium自動化測試框架。

框架功能

  • 業務功能的封裝
  • 測試用例封裝
  • 測試包管理
  • 截圖處理
  • 斷言處理
  • 日誌獲取
  • 測試報告生成
  • 資料驅動
  • 資料配置
  • Win10 64Bit
  • Appium 1.7.2
  • 考研幫App Android版3.1.0
  • 夜神模擬器 Android 5.1.1

測試案例

測試環境

1.巨集哥的系統環境是Windows 10版本 64位系統

 

2.巨集哥的dk版本:"1.8.0_181"

3.巨集哥的appium版本:1.4.16 

4.selenium:3.141.0

安裝selenium:

輸入指令pip install selenium

驗證安裝成功:pip show selenium

5.測試裝置:Android 5.1.1 (不能低於5.0版本)

6.Python:3.7.2

命令:python -V  ,回車即可。

7.測試App:

考研幫Android app V3.1.0

覆蓋用例

1.登入場景

使用者名稱

密碼

北京巨集哥2018

bjhg2018

北京巨集哥2019

bjhg2019

666

222

2.程式碼實現

 

3.參考程式碼

test_login.py
# coding=utf-8
# 1.先設定編碼,utf-8可支援中英文,如上,一般放在第一行

# 2.註釋:包括記錄建立時間,建立人,專案名稱。
'''
Created on 2019-9-25
@author: 北京-巨集哥
Project: Appium自動化測試框架綜合實踐 - 框架簡介 - 登入
'''

# 3.匯入模組
from common.myunit import StartEnd
from businessView.loginView import LoginView
import unittest
import logging

class TestLogin(StartEnd):
    csv_file='../data/account.csv'

    @unittest.skip('test_login_bjhg2019')
    def test_login_bjhg2019(self):
        logging.info('======test_login_bjhg2019=====')
        l=LoginView(self.driver)
        data=l.get_csv_data(self.csv_file,2)

        l.login_action(data[0],data[1])
        self.assertTrue(l.check_loginStatus())

    # @unittest.skip('skip test_login_bjhg2018')
    def test_login_bjhg2018(self):
        logging.info('======test_login_bjhg2018=====')
        l=LoginView(self.driver)
        data = l.get_csv_data(self.csv_file, 1)

        l.login_action(data[0], data[1])
        self.assertTrue(l.check_loginStatus())

    @unittest.skip('test_login_error')
    def test_login_error(self):
        logging.info('======test_login_error=====')
        l = LoginView(self.driver)
        data = l.get_csv_data(self.csv_file, 3)

        l.login_action(data[0], data[1])
        self.assertTrue(l.check_loginStatus(),msg='login fail!')

if __name__ == '__main__':
    unittest.main()

1.註冊場景

註冊一個新的賬號(賬戶和密碼可以隨機生成),完善院校和專業資訊 (如:院校:上海-同濟大學 專業:經濟學類-統計學-經濟統計學)

2.程式碼實現

3.參考程式碼

test_register.py
# coding=utf-8
# 1.先設定編碼,utf-8可支援中英文,如上,一般放在第一行

# 2.註釋:包括記錄建立時間,建立人,專案名稱。
'''
Created on 2019-9-25
@author: 北京-巨集哥
Project: Appium自動化測試框架綜合實踐 - 框架簡介 - 註冊
'''

# 3.匯入模組
from common.myunit import StartEnd
from businessView.registerView import RegisterView
import logging,random,unittest

class RegisterTest(StartEnd):
    def test_user_register(self):
        logging.info('======test_user_register======')
        r=RegisterView(self.driver)

        username = 'zxw2018' + 'fly' + str(random.randint(1000, 9000))
        password = 'zxw2018' + str(random.randint(1000, 9000))
        email = '51zxw' + str(random.randint(1000, 9000)) + '@163.com'

        self.assertTrue(r.register_action(username,password,email))

if __name__ == '__main__':
    unittest.main()

框架設計圖

  這裡巨集哥根據兩個場景設計了大致框架

 

 

 

小結

   今天就分享這麼多吧,後邊就由巨集哥手把手的教你從0到1的搭建一個完整的python+appium的自動化測試框架。

 

個人公眾號                                                             微信群 (微信群已滿100,可以加巨集哥的微信拉你進群,請備註:進群)          

                                                                 

您的肯定就是我進步的動力。如果你感覺還不錯,就請鼓勵一下吧!記得點波 推薦 哦!!!(點選右邊的小球即可!(^__^) 嘻嘻……)