移动app测试的多样性_app移动端接口性能测试
13. APP測試和WEB測試有什么區別?
1. 從技術上來說:
* 測試類型 :WEB測試有功能測試、性能測試、安全性測試、GUI測試。
APP測試除了有WEB測試的類型還增加專項測試,特性測試,適配測試。
* 區別:測試細節和方法 web項目,一般都是b/s架構,基于瀏覽器的。app則是c/s的,是有客戶端的。
2. 系統架構。
* web測試只要更新了服務器端,客戶端就會同步更新;
* app下修改了服務端,意味著客戶端用戶所使用的核心版本都需要進行回歸測試一遍。
3. 客戶端性能方面
* web頁面可能只會關注響應時間,
* app則還需要關心流量、電量、CPU、GPU、Memory(內存,音:咩么瑞)。
4. 兼容方面。
* web是基于瀏覽器的,所以更傾向于瀏覽器(IE、chrome、Firefox 音:/faif?:ks/)和電腦硬件,電腦系統的方向的兼容;
* app的測試則必須依賴手機或者pad,不僅要看分辨率,屏幕尺寸,重要看設備系統。
專項測試:
* 多網測試:
無線網絡、2G、3G、4G等,斷網、網速較差及網絡之間的切換時頁面的顯示等
非wifi下,網絡流量問題
需要測試弱網下的用戶體驗
* 中斷測試:
如電話、短信、通知、斷電等,軟件需要處理這些特殊情況。
* 安裝測試:
安裝時的中斷、弱網、
增量包更新。
* 界面測試:
如不同尺寸規格的軟件圖文在不同屏幕的顯示。
自動化測試:
1. 如何做自動化測試(介紹框架和自動化測試的場景)(考試)
框架。
思路:項目中我們主要是接口的自動化/web界面的自動化/app的自動化,用python寫的代碼,開發工具是pycharm
如果你是做的web界面自動化
web界面的自動化采用了下面的框架:
selenium開源測試庫,
用unittest做自動化測試框架,
配合htmlreport輸出測試報告,
用xrld模塊讀寫Excel數據,
用nose模塊參數化數據
最后用cmd命令/Jenkins調度執行自動化測試腳本。
如果你比較自信:我從頭開始搭建的這個數據驅動的自動化測試框架(我們把測試用例寫在Excel里,自動參數化執行測試腳本)。
如果你不自信: 我們這個框架是組長搭建的,然后我在里面寫了一些基本的測試腳本(復制改下別人的腳本)。
如果你是做的接口自動化,
接口的自動化采用了下面的框架:
python的開源庫requests(音:威快SS)發送http/https請求,并用json庫把返回的json字符串轉換成Python對象(數據處理或者斷言)。
用unittest做自動化測試框架,
配合htmlreport輸出測試報告,
用xrld模塊讀寫Excel數據,
用nose模塊參數化數據,
最后用cmd命令/Jenkins調度執行自動化測試腳本,
如果你是做app自動化,
APP的自動化采用了下面的框架:
appium(音:捱撇姆)移動端的開源測試庫
用unittest做自動化測試框架,
配合htmlreport輸出測試報告,
用xrld模塊讀寫Excel數據,
用nose模塊參數化數據,
最后用cmd命令/Jenkins調度執行自動化測試腳本。
如果你什么都做
利用unittest + htlmreport +nose 等自己搭建了一個通用的框架,
web測試采用selenium開源測試庫 ,
接口測試采用requests開源測試庫,
APP測試采用appium移動端的開源測試庫。
場景:
界面的自動化測試(web/app),一般是在項目有時間的時候編寫腳本,挑選一些測試用例中比較重要的用例轉換自動測試腳本,每次回歸測試的時候調用執行
接口的自動化: 接口的測試腳本可以在接口功能開發完成以后就去執行;
在回歸的時候也可以執行接口自動化測試腳本。
2. python有哪些數據類型?(考試)
六大標準類型
Number(數字) : int、float(音:浮漏特)、bool
String(字符串)音:絲俊
List(列表)
Tuple(元組)音:踏博
Set(集合)
Dictionary(字典)音:嘚遲呢威
不可變數據(3 個):Number(數字)、String(字符串)、Tuple(元組);
可變數據(3 個): List(列表)、Dictionary(字典)、Set(集合)。
3. python不/可變數據類型有哪些? 列表和元組有什么區別 (考試)
不可變數據(3 個):Number(數字)、String(字符串)、Tuple(元組);
可變數據(3 個): List(列表)、Dictionary(字典)、Set(集合)。
列表是可變數據類型,元組不可數據類型,列表以[ ]包裹 元組以()包裹
4. 列表/元組/字典怎么取值? 怎么循環遍歷
通過索引(列表/元組)或者鍵(字典)取值
元素遍歷 for a in list:
索引遍歷 for i in range(list):
5. 自動化定位元素的方法:
selenium有8種方法定位元素:比如 id name classname tag_name linktext xpath css選擇器
我主要習慣用xpath或者css定位
xpath定位:
xpath xml文檔的標簽路徑定位方法;分為相對路徑和絕對路徑定位;
/表示根目錄 //所有目錄下尋找 *表示所有;用方括號包裹屬性,,多個屬性可以用多個方括號,在屬性之前加@
//*[@id="kw"][@name="wd"]
//span[@class='bg s_iptwr']/input
css定位:
css選擇器(選擇標簽)定位的一種方法
所有的屬性用方括號包裹,多個屬性可以用多個方括號包裹 input[id='kw'][name='wd'][class='s_ipt'] (xpath表示屬性用@,css用鍵值對表示)
特殊的屬性 id class ;其中 .表示類 用#表示id : input.s_ipt input#kw
css中表示標簽之間關系:
祖孫關系 form input ;
父子關系 span>input
兄弟關系 span ~ input
毗鄰關系 span + a
定位的時候可以 關系加屬性表示標簽 form#form input@kw
如何選擇按下標選擇標簽: a:nth-child(1) ,第一個a標簽
6. 自動測試適用的場景,
功能成熟(需求變動較小),
產品更新維護周期長,
項目進度不太大,
比較頻繁的回歸測試,
軟件開發比較規范,具有可測試性。
接口測試:
1. OSI模型的層次和代表性的協議,
Open System Interconnect 網絡互連模型,
OSI:物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層 ,
物理層的協議: HTTP(80) HTTPS(443) 取的是Apache的端口;tomcat 8080 8443 ; mysql 3306 oracle 1521
FTP 20/21, SSH 22, telnet(遠程登陸協議)23, SMTP(郵件協議)。
傳輸層: TCP 和 UDP 協議
2. TCP和UDP協議的區別。
共同點: 都是傳輸層的協議
不同點:
1. 定義
TCP Transmission Control Protocol 傳輸控制協議,
UDP User Datagram Protocol 用戶數據報協議,
2. TCP建立連接3次握手 釋放連接4次揮手 ;UDP直接建立連接 ,
示例:客戶端和服務器建立連接三次過程,
客戶端發送一個請求給服務端,SYN=1;
服務端收到響應后給客戶端響應,SYN=1 ,ACK確認包
客戶端再次發送一個ACK的確認包給服務端
3. 特點:
TCP : 面向連接的,可靠的,數據量小。
UDP : 無連接的 ,不可靠,數據量大。
4. 應用場景
UDP: QQ/微信視頻 TCP :http協議,
3. HTTP協議的內容。
1. 定義 :HyperText Transfer Protocol 超文本傳輸協議 ,傳輸的不僅僅是文本,包括視頻 圖片 音頻 ;
從WWW服務器傳輸超文本到本地瀏覽器的傳輸協議。
2. 組成,
請求報文,
請求head,
請求行 : 請求方法GET,URI(URL是URI的一個形式) 協議版本
請求方法: GET, POST ,DELETE,......
URL的組成: 協議://主機:端口號(80端口默認,可以不寫)/絕對路徑,
協議:http,https ,
區別:https是在http的基礎上結合ssl協議(加密的管道),https更安全,
共同點:都屬于傳輸層,使用TCP協議進行傳輸,
請求body,
響應報文,
響應的head,
響應狀態行 : 協議的版本 狀態碼 狀態描述,
4. GET和POST的區別,
1. 功能的區別 ,
get重點在從服務器上獲取資源,post重點在向服務器發送數據。
2. 請求參數,
POST請求參數放在body,get的請求參數放在URL中。
3. 長度 get放在url所以有長度限制, post放在body所以沒有長度限制
4. post要比get安全 。
5. http響應狀態碼以及代表意思
2xx 成功--表示請求已被成功接收、理解、接受,
3xx 重定向--要完成請求必須進行更進一步的操作,
4xx 客戶端錯誤--請求有語法錯誤或請求無法實現,
5xx 服務器端錯誤--服務器未能實現合法的請求,
200 OK 客戶端請求成功,
401 Unauthorized 請求未經授權,
403 Forbidden 服務器收到請求,但是拒絕提供服務,
404 Not Found 請求資源不存在,
500 Internal Server Error 服務器發生不可預期的錯誤,
503 Server Unavailable 服務器當前不能處理客戶端的請求,一段時間后可能恢復正常。
6. 項目中哪些地方會調用接口,接口名稱是什么?
一般接口: 系統內部的接口(接口的詳細測試), 系統外部的接口(重在聯調)。
接口名稱: 登錄 注冊 忘記密碼 收藏 購物車 取消購物車 刪除商品 商品詳情.... + 接口
一般有優先級,測試重點接口
接口測試的重點是要檢查數據的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關系等。
7. fiddler,postman 抓包的原理:
讓fiddler 和 postman 成為代理服務器, 將網絡設置執行代理 -- 中介服務。
8. 接口測試流程:如何做接口測試 ,
需求評審(測試對象的分析) --測試需求(測試點,測試設計) -- postman的工具將測試用例轉換成測試腳本 --- postman執行測試 --- 缺陷處理 ---- 回歸。
測試對象: 接口文檔(接口文檔的內容),(一定要接口文檔?接口文檔不規范)查找app前端或者后臺的日志,把接口的請求參數打印出來;然后寫好測試用例,找開發和架構師進行評審和確定。
測試點:接口測試點設計原則(重點),
1. 業務邏輯,
2. 參數名稱的檢查,
3. 參數值的檢查,
4. 接口返回碼的覆蓋,
5. 異常處理。
9.接口(API)文檔的內容:
接口名稱 ,
接口請求地址,
請求參數的名字, 是否必填, 數據類型, 數據值以及數據值的意義或者范圍 --- 上報數據。
返回參數的數據格式(json xml)返回參數的名字, 數據類型, 數據值,
接口返回的狀態碼(接口返回的狀態碼是開發自定義的狀態碼如:1代表成功,-1代表失敗等),
接口請求的方法(get, post,delete),
10. 接口測試的原理:
1. 通過測試程序(工具 fiddler ,postman, jmeter, loadrunner, python代碼)模擬客戶端向服務器發送請求報文,
2. 服務器接受請求處理后把應答報文發送給客戶端,
3. 客戶端接收應答報文并解析 (響應response(音:威絲棒次)解析過程,postman可以實現),
4. 程序判斷是否符合預期結果的過程(斷言),
5. 即request音:瑞快絲特(請求)→response音:威絲棒次(響應)過程,
工具模擬發送http請求,然后驗證服務器返回結果是否正確符合業務邏輯...
11. 接口測試的場景:
1. 接口開發完成以后就可以進行接口測試;,
2. 回歸測試的時候可以用自動化腳本運行接口測試腳本。
12.性能測試:,
1. 性能測試指標值: ,
軟件指標:,
事務 transaction音:團咋可省:衡量性能測試的對象,
并發用戶數/并發線程數:跟服務器有交互的用戶數,
注冊用戶數 , 活躍用戶數/僵尸用戶 ,在線用戶數 ,并發用戶數,
響應時間:Response(音:威絲棒次) Time (音:太嗯),發出請求到接受到請求的總時間,根據測試對象去分(呈現時間 + 接口的時間(發送到應用服務器時間+數據庫時間))。
用戶體驗的角度:2/5/8原則,
吞吐量/事務總數 : 一定時間之內事務的處理總量,
TPS :transaction per second 每秒處理的事務數 事務總量/事務總的完成時間,
點擊率 Hit Rate : 一次點擊所發出的請求數/時間,
物理指標:,
cpu占用 內存占用 磁盤讀寫I/O比例 網絡帶寬大小。
2. 性能測試的目的 。
評估(滿足性能測試需求,沒有一個明確的性能需求文檔;一般是在需求文檔的性能需求) ,
調優 解決性能測試中發現的瓶頸和問題,
穩定 驗證系統是否穩定運行。
總結
以上是生活随笔為你收集整理的移动app测试的多样性_app移动端接口性能测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: canal 监听不到数据变化_数据的异构
- 下一篇: 使用qtcreator中的git_Git