【性能測試】移動測試md知識總結第1篇:移動端測試課程介紹【附代碼文檔】

来源:https://www.cnblogs.com/yinuo112/p/18071413
-Advertisement-
Play Games

(適用於.NET/.NET Core/.NET Framework)【目錄】0.前言1.第一個AOP程式2.Aspect橫切麵編程3.一個橫切麵程式攔截多個主程式4.多個橫切麵程式攔截一個主程式5.優勢總結6.展望 0.前言AOP(Aspect Oriented Programming)是“面向橫切 ...


移動測試完整教程(附代碼資料)主要內容講述:移動端測試課程介紹,移動端測試知識概覽,移動端測試環境搭建,ADB常用命令學習主要內容,學習目標,學習目標,1. window安裝andorid模擬器,學習目標。主流移動端自動化測試工具,Appium環境搭建,appium入門案例,App基礎操作API,手機控制項查看工具uiautomatorviewer,元素定位api學習目標,學習目標,學習目標,1. Appium 背景介紹,2. appium安裝的2種方式,3. Appium-python庫安裝,學習目標,1.打開PyCharm 創建一個新項目,2.在hello.py文件中輸入如下代碼,3. 啟動Appium和 Android模擬器,4. 運行hello.py觀看模擬器的設置應用是否被打開,學習目標,學習目標,學習目標,1.app元素定位操作API,2. 定位一組元素,3.顯示等待。app元素信息操作,元素事件操作,模擬手勢操作學習目標,學習目標,學習目標,學習目標,手機操作api,學習目標。setup和teardown函數,常用插件學習目標,1、Pytest安裝和介紹,2、pytest第一個例子,3、運行方式,學習目標,1. pytest配置文件,學習目標。pytest提高--fixture,Pytest 提高2,PO模式簡介,前提準備,按照業務邏輯抽取代碼學習目標,學習目標,學習目標,學習目標,學習目標,學習目標。抽取find_element,抽取基本的操作,Yaml介紹,python解析yaml文件學習目標,總結,學習目標,學習目標,學習目標。yaml數據驅動案例,Allure,pytest中使用allure,Jenkins安裝於配置學習目標,學習目標,學習目標,學習目標,學習目標,學習目標。Jenkins持續集配置學習目標,學習目標。

全套筆記資料代碼移步: 前往gitee倉庫查看

感興趣的小伙伴可以自取哦,歡迎大家點贊轉發~


移動端測試課程介紹

學習主要內容

1 移動測試分類及android環境搭建
2 adb常用命令
3 appium環境搭建及使用
4 pytest框架學習
5 PO模式
6 數據驅動
7 Allure報告
8 Jenkins持續集成

參考資料:

​ [1. Appium中文開發手冊](

​ [2. Appium 官方文檔](

​ [3. pytest官網](

​ [4. Jenkins中文用戶手冊](

​ [5. Json官方文檔](

學習目標

  1. 掌握移動端安卓模擬器的安裝
  2. 掌握常見的adb指令
  3. 瞭解主流的移動端自動化測試工具
  4. 掌握appium環境搭建
  5. 瞭解appium入門案例

移動端測試知識概覽

學習目標

  • 瞭解移動端測試分類

1. 什麼事移動端測試

移動端測試是指對移動應用進行的測試, 即實體的特性滿足需求的程度

2. 移動端測試分類

2.1 app功能測試

  • 業務邏輯正確性測試
1. 查看是否符合業務需求文檔
2. 是否滿足隱性需求
  • 相容性測試
1. 系統版本是否相容: 
    安卓
         原生系統上下版本間是否相容,例如安卓10.0的是否相容9.0
         二次開發的系統, 比如小米的MIUI系統間的相容、華為的EMUI上下版本間相容性是否良好
    ios 版本間的相容是否良好
2. 解析度是否相容
3. 網路情況
        弱網測試、WIFI限速、更改網路app模式
  • 異常測試
1.熱啟動應用
  [1]app至於後臺時是A頁面,切換到前臺,還是A頁面,還是初始化頁面
  [2]app長時間置於後臺,切換到前臺,還是A頁面,還是初始化頁面,崩潰/閃退

2.網路切換和中斷恢復
  [1]4g-2g wifi-4g,保證app可用,業務正常
  [2]wif-斷網-wifi
     斷點續傳  下載應用5M 下載了3M斷網,再次聯網,繼續當前位置下載

3.電話和信息中斷恢復
  [1]電話:看視頻,打電話30分鐘,切換為繼續查看位置
  [2]簡訊:玩游戲  

4.升級安裝卸載測試
  [1]升級測試
     臨近版本升級 1.0--->1.1--->1.2
     跨版本升級 1.0---->2.0
  [2]安裝測試
     首次安裝
     覆蓋安裝
          高版本--->低版本  成功
          低版本--->高版本  不允許   
     卸載後安裝
  [3]卸載測試
     首次卸載
     卸載--->安裝--->卸載 

5.健壯性測試
  手機資源消耗
  流量消耗
  崩潰恢復等測試

2.2 app自動化測試

通過場景和數據的預設,把以人為驅動的測試行為轉化為機器執行的一種過程.

⚠ 註意: 並不是所有功能都能進行自動化.

2.3 app安全測試

通過安全測試技術,保證app儘可能的不存在安全漏洞.

更多移動測試參考:

  • [移動測試的分類](

移動端測試環境搭建

移動端自動化測試的基礎環境配置

    1. 安裝Java環境
Android應用為例講解,需要安裝java環境
    1. SDK環境
Android依賴SDK的環境
    1. 模擬器環境
考慮大家連接真機不方便,所以採用模擬器替代

1. Wind 安裝java環境

安裝步驟:

1.1 安裝jdk1.8

運行jdk-8u151-windows-x64.exe⽂件,預設安裝即可

(例如我的安裝⽬錄:C:\Program Files\Java\jdk1.8.0)

1.2 配置java環境變數(windows為例)

1.進入我的電腦-->屬性-->高級系統設置--->環境變數

2.在系統變數下點擊新建 -> 變數名: JAVA_HOME -> 變數值: C:\Program Files\Java\jdk1.8.0

1.3 驗證環境變數

1.打開dos 快捷鍵win+r
2.輸入java -version

出現下圖,說明安裝成功

img

2. Mac 安裝java環境

將下載的osx版的java環境預設進行安裝,然後進行一下配置:

1.進入命令行, vim ~/.bash_profile 
2.# set jdk1.8
    JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home
    CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    PATH=$PATH:$JAVA_HOME/bin
    export JAVA_HOME CLASSPATH
    export PATH

啟動終端,輸入java -version查看是否正常啟動

java安裝

1. Window 安裝sdk(Androi需要的環境)

安裝步驟:

1.1 解壓Android sdk 文件夾

註意:路徑中不要有中文, 確保文件夾下有一下兩個文件

如下圖: img

1.2 配置到系統環境變數下.

SDK環境變數配置(Windowns7為例)

    1.進入我的電腦 -> 屬性 -> 高級系統設置 -> 環境變數

    2.在系統變數下點擊新建 -> 變數名: ANDROID_HOME -> 變數值: D:\android-sdk -> 點擊確定按鈕

    3.在系統變數下找到系統的path變數,最後添加:;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;(最前面是一個分號,如果path變數最後已有分號,可不用添加) -> 點擊確定按鈕

1.3 驗證環境變數是否配置成功

  • 在dos中輸入adb指令,如下圖配置成功 img
  • 在dos中輸入android指令 出現Android sdk manager對話框 img

註意:**

假如sdk中已經有build-tools和platform-tools文件夾,就不需要再進行下載安裝了

2. Mac 安裝android sdk

  1. 把下載的android sdk macosx版本的解壓到指定目錄(我的解壓到//Library/Java/)

macsdk

註意:

假如sdk沒有build-tools和platform-tools文件夾,要把提供的文件夾移動到此處, 後面只需要配置環境變數即可,不需要下載了

  1. 把sdk配置到系統環境變數
1.進入命令行, vim ~/.bash_profile
2.# set android
   ANDROID_HOME=電腦存放的路徑/android-sdk-macosx
   PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
   export ANDROID_HOME 
   export PATH
  1. 驗證是否成功

驗證adb命令: 在終端輸入adb,出現adb版本信息說明成功

Mac adb

驗證android是否配置成功: 在終端輸入android, 出現此圖片說明成功

Mac android

3、選擇不同版本的的Android系統進行下載

註意:

由於安卓鏡像在國外,最好更換國內的鏡像

步驟

  • 在彈出的android sdk manager頁面,點擊tools, 下啦框點擊options

還原

  • 在彈出的對話框輸入國內驚現的地址和埠號.

set

鏡像地址列表(也可以網上查找最新的):
     中國科學院開源協會鏡像站地址:
         IPV4/IPV6: mirrors.opencas.cn 埠:80
         IPV4/IPV6: mirrors.opencas.org 埠:80
         IPV4/IPV6: mirrors.opencas.ac.cn 埠:80
     上海GDG鏡像伺服器地址:
         sdk.gdgshanghai.com 埠:8000

     北京化工大學鏡像伺服器地址:
         IPv4: ubuntu.buct.edu.cn/ 埠:80
         IPv4: ubuntu.buct.cn/ 埠:80
         IPv6: ubuntu.buct6.edu.cn/ 埠:80

     大連東軟信息學院鏡像伺服器地址:
         mirrors.neusoft.edu.cn 埠:80

1. window安裝andorid模擬器

1. 模擬器Genymotion安裝

1.執行genymotion-2.11.0-vbox.exe(是一個集合程式,包含genymotion和virtualbox) -> 不需要更改配置,直接下一步預設安裝

2.安裝完genymotion繼續等待,會提示安裝virtualbox,繼續安裝,期間會提示安裝oracle插件,全部允許安裝

3.安裝完成後會在桌面展示genymotion和virtualbox兩個圖標

img

註意:

安裝其他的模擬器也可以 ,安裝成功就可以.(比如MuMu 逍遙 夜神 雷電)

2. Mac 下安裝模擬器

mac下安裝要裝兩個dmg文件: genymotion-2.12.1.dmg和VirtualBox-5.2.26-128414-OSX.dmg

1.安裝genymotion-2.12.1.dmg-》不用更改配置,預設安裝就行
2.安裝VirtualBox-5.2.26-128414-OSX.dmg  -》 不用更改配置直接安裝就行
3.安裝後也會看到上面三個應用

3.虛擬機鏡像導入

1.打開virtualbox
2.進入virtualbox -> 管理 -> 導入虛擬電腦
3.點擊文件選擇(Samsung Galaxy S6 - 5.1.0 - API 22 - 1440x2560.ova) -> 點擊下一步
4.勾選 重新初始化所有網卡的MAC地址
5.點擊導入按鈕 -> 等待倒入完成
6.virtualbox列表會展示如下圖圈出的選項

虛擬鏡像

4. 啟動模擬器

在genymotion主界面點機start按鈕.啟動成功就會顯示下圖

啟動成功

5. 安裝應用apk

安卓模擬器啟動起來後,我們就可以安裝要進行測試的應用了.安裝成功後,我們的環境搭建就全部結束.

安裝方法:

  • adb命令行(後面講解)
  • 直接拖拽要安裝的apk到模擬器上,自動安裝

註意事項

1. 安裝ARM插件

安裝某些應用apk時由於apk功能比較豐富,但是模擬器自帶的不支持這些功能,所以要安裝arm插件,來滿足apk的使用.

(1)、拖動ARM_Translation_Lollipop_20160402.zip到已啟動的android虛擬機上

需要下載對應版本的插件、我們使用的是adnroid5.1 所以使用的是這個

(2)點擊提示的ok按鈕

arm插件1

(3)、再次點擊提示的ok按鈕,重啟模擬器既可以安裝apk文件

arm插件1

2. 使用其他版本的模擬器的步驟

(1)、需要到genymotion官網上註冊一個賬號

(2)、進入genymotion界面,點擊add按鈕、會彈出登錄對話框、輸入註冊的賬號

登錄genymotion

(3)、登錄成功後可以選擇對應不同的android版本、手機型號進行安裝

下載模擬器

下載模擬器成功

選擇要使用版本啟動

ADB常用命令

學習目標

  • 掌握常用的ADB命令

1. ADB命令簡介

ADB全名Andorid Debug Bridge。 是一個Debug工具。為何稱之為Bridge呢? 
因為adb是一個標準的C/S結構的工具, 是要連接開發電腦和調試手機的

包含如下幾個部分:
    1.Client端,運行在開發機器中,即你的開發PC機。用來發送adb命令。
    2.Daemon守護進程, 運行在調試設備中, 即的調試手機或模擬器。
    3.Server端, 作為一個後臺進程運行在開發機器中, 即你的開發PC機. 用來管理PC中的Client端和手機的Daemon之間的通信。

2. 常用命令

  • adb 幫助
adb --help
  • 啟動adb 服務
adb start-server
  • 關閉adb 服務
adb kill-server
  • 獲取設備號
adb devices
  • 獲取系統版本
adb shell getprop ro.build.version.release
  • 發送文件到手機
adb push 電腦端⽂件路徑/需要發送的文件,手機端存儲的路徑

adb push C:\Users\win\Desktop\xx.png /sdcard
  • 從手機拉取文件
adb pull 手機端的路徑/拉取文件名 電腦端存儲文件路徑

adb pull /sdcard/xx.png C:\Users\win\Desktop
  • 查看手機運行日誌
adb logcat
  • 進入到手機終端
adb shell
  • 獲取app啟動包名和啟動名(⚠手機需要先打開對應app)
1.Mac/Linux: 'adb shell dumpsys window windows | grep mFocusedApp’
2.在 Windows 終端運⾏ 'adb shell dumpsys window windows | findstr mFocusedApp’
  • 安裝app到手機
adb install 路徑/xxx.apk
  • 卸載手機app
adb uninstall app
  • 獲取app啟動時間
adb shell am start -W 包名/.啟動名

未完待續, 同學們請等待下一期

全套筆記資料代碼移步: 前往gitee倉庫查看

感興趣的小伙伴可以自取哦,歡迎大家點贊轉發~


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 示例項目:https://gitee.com/easyxaf/recharge-rules-engine-sample 前言 繼上一篇文章對規則引擎編輯器進行了初步介紹之後,本文將通過實際應用案例深入探討規則引擎編輯器的使用方法。編輯器的操作相對簡單,我們將重點放在RulesEngine的講解上。請 ...
  • 這是我本人自己寫的一個開源庫,現已經發佈到nuget,可以直接在vs的nuget包管理中搜索到,或者可以到nuget官網下載:https://www.nuget.org/packages/ZmjConvert/,也可以到我的個人網站上下載源碼:https://www.zhaimaojun.cn/P/ ...
  • .NET Aspire Preview 4 is now available! Here's a summary of what's new in this preview release:.NET Aspire Preview 4 現已推出!以下是此預覽版中新增內容的摘要: Podman Supp ...
  • c#的lamba表達式 之前已經寫過一些關於委托還有事件的文章,今天就來介紹一下lambda表達式。 首先定義需要的函數以及委托 { public delegate void DoNothingDelegate(); public delegate void StudyDelegate(int id ...
  • 前言 作為開發人員,我們經常嚮應用程式添加新功能並修改當前的 Api。版本控制使我們能夠安全地添加新功能而不會造成中斷性變更。一個良好的 Api 版本控制策略可以清晰地傳達所做的更改,並允許使用現有 REST Api 的客戶端在準備好時才遷移或更新他們的應用程式到最新版本。 哪些行為可能會造成 Ap ...
  • ASP.NET Core 中的框架中發出大量診斷事件,包括當前請求進入請求完成事件,HttpClient發出收到與響應,EFCore查詢等等。 我們可以利用DiagnosticListener來選擇性地監聽這些事件,然後通過自己的方式組織這些日誌,實現無侵入的分散式跟蹤。 下麵我們通過Diagnos ...
  • 概述:C#中的Attribute(特性)為程式元素提供了靈活的元數據機制。除基礎應用外,可高級應用於自定義代碼生成、AOP等領域。通過示例展示了Attribute在AOP中的實際用途,以及如何通過反射機制獲取並執行與Attribute相關的邏輯。 在C#中,Attribute(特性)是一種用於為程式 ...
  • 概述:.NET中實現數字轉大寫金額可通過現有庫或自定義方法。自定義方法示例使用遞歸將數字分段轉換為中文大寫金額,處理了千、百、十、個位數。實際應用中可根據需求進一步擴展,例如處理小數部分或負數。 在.NET中,你可以使用以下方案之一來實現將數字轉成大寫金額: 使用現有庫: .NET框架中有一些庫已經 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...