總結-4

1、mysql中的查詢有幾種方式
    SELECT語句:用于從一個或多個表中檢索數(shù)據(jù)
     
    JOIN語句:用于將兩個或多個表中的行連接起來,基于這些表之間的關系
     左連接:left join
     右連接:right join 
    UNION語句:用于合并兩個或多個SELECT語句的結果集
     全連接:full join 或 full outer join(outer可以省略),但Mysql不支持,可以使用union組合并去重實現(xiàn)
     簡單理解:全連接查詢的是 左表所有的數(shù)據(jù)  加上右表所有的數(shù)據(jù)并去重
    例如:
     select * from student st left join teacher th on st.teacher_id = th.id
     union 
     select * from student st right join teacher th on st.teacher_id = th.id

    子查詢:嵌套在其他SELECT語句中的SELECT語句,用于檢索滿足特定條件的數(shù)據(jù)
     
    補充:
     1.MySQL 有三種集群模式:
        單機模式
         單機模式是 MySQL 的最簡單的模式,只有一臺服務器,數(shù)據(jù)存儲在磁盤上。
        主從模式
         主從模式是 MySQL 中最常用的模式,包括一臺主服務器和一個或多個從服務器。
         主服務器上的數(shù)據(jù)會同步到從服務器上,從服務器可以用來做讀寫分離,提升系統(tǒng)的性能
        高可用模式
         高可用模式是 MySQL 中的高級模式,包括兩臺或多臺服務器組成的集群,其中一臺服務器是主服務器,其他的是從服務器。
         在這種模式下,如果主服務器出現(xiàn)故障,可以由從服務器自動切換為主服務器,維護系統(tǒng)的可用性。
         
     2.MySQL分頁查詢的方法
         MySQL目前常用的分頁方式有兩種:
        
        a.利用limit實現(xiàn)分頁,語法為“SELECT*FROM 表名 limit 開始記錄數(shù),每頁條數(shù)”;

        b.利用主鍵索引實現(xiàn)分頁,語法為“SELECT*FROM 表名 WHERE 字段名 > (頁數(shù)*10) LIMIT 條數(shù)”

         一般使用第一種方式居多,適用于數(shù)據(jù)量不大的場景:
        例如:
         -- 0是開始的記錄數(shù),10是條數(shù)
         SELECT * FROM user LIMIT 0,10;
         如果換成第二種寫法:
         SELECT * FROM user WHERE id > (0*10) LIMIT 10
         
         注釋第二種寫法
         id是主鍵,如果是第X頁共Y條:(X從0開始計算)
         SELECT * FROM user WHERE id > (X*10) LIMIT Y
         
        注意:
         第一種方式和第二種方式當數(shù)據(jù)量不多的時候,是第一種方式占優(yōu)勢,畢竟沒有數(shù)據(jù)重合的問題,并且查詢的速度也沒有明顯差別。
         但是當數(shù)據(jù)量上去了,差別就很明顯了,查詢速度是不一樣的 ,查詢了第100頁時,實際上前99頁都已經(jīng)被掃描過。
         所以第二種的方式更適用于大量數(shù)據(jù)的場景。

         
2、APP登錄功能測試點
     1.不同登錄方式的測試,包括賬號密碼登錄、手機號登錄、郵箱登錄、掃碼登錄等;
     2.測試登錄的成功和失敗情況,包括正確的賬號密碼、手機號、郵箱是否能夠成功登錄,錯誤的情況下是否能夠提示用戶錯誤信息;
     3.測試登錄后的用戶信息是否正確,包括用戶昵稱、頭像、等級、積分等信息是否正確顯示;
     4.測試不同設備的登錄情況,包括手機、平板、電腦等設備的登錄情況;
     5.測試不同網(wǎng)絡環(huán)境下的登錄情況,包括WiFi、4G、3G等網(wǎng)絡環(huán)境下的登錄情況;
     6.測試登錄后的各種操作,包括修改密碼、找回密碼、退出登錄等操作是否正常;
     7.測試登錄的安全性,包括密碼是否加密存儲、是否有防止暴力破解的機制等;
     8.測試登錄的穩(wěn)定性,包括高并發(fā)情況下的登錄是否正常、服務器壓力測試等
     
    補充:
    9.免登錄
     很多應用提供免登錄功能,當應用開啟時自動以上一次登錄的用戶身份來使用app.

     1)app有免登錄功能時,需要考慮IOS版本差異
     2)考慮無網(wǎng)絡情況時能否正常進入免登錄狀態(tài)
     3)根據(jù)規(guī)則,一個帳戶只允許登錄一臺機器。所以,需要檢查一個帳戶登錄多臺手機的情況。原手機里的用戶需要被踢出,給出友好提示
     4)app切換到后臺,再切回前臺的校驗;切換到后臺,再切換回前臺的測試
     5)密碼更換后,檢查有數(shù)據(jù)交換時是否進行了有效身份的校驗
     6)支持自動登錄的應用在進行數(shù)據(jù)交換時,檢查系統(tǒng)是否能自動登錄成功并且數(shù)據(jù)操作無誤
     7)登錄
      系統(tǒng)是否允許多次非法的登陸,是否有次數(shù)限制
      使用已經(jīng)登陸的賬號登陸系統(tǒng)是否正確處理
      使用禁用的賬號登陸系統(tǒng)是否正確處理
      登陸超時的處理

 
3、抓包工具怎么抓取APP的數(shù)據(jù)包請求
    1.Android移動端App抓包
       前提:
         因為Fiddler抓包的原理就是通過代理,所以確保被測終端要和安裝Fiddler的電腦在同一個局域網(wǎng)中。(也就是同一網(wǎng)段中)
         確保防火墻允許Fiddler進程可以遠程連接。(不行就關閉防火墻)
     
       步驟1:開啟Fiddler的遠程連接  
         Fiddler中,Tools菜單 —> Options… —> Connections標簽頁,勾選Allowremote computers to connect,并記住端口號為8888,
         等會設置手機代理時需要。設置好后重啟Fiddler保證設置生效。
         allow remote computers to connect表示“允許遠程計算機連接”。意思是代理的移動設備可以連接到Fiddle上,必須勾選。
        
       步驟2:開啟Fiddler的HTTPS請求解碼
         提示:設置完成后最好重啟一下Fiddler。
         
       步驟3:查看本地電腦IP地址
         在CMD命令行中輸入ipconfig查看本地電腦IP地址
         
       步驟4:在手機中設置網(wǎng)絡代理
         移動端手機的網(wǎng)絡代理要設置成Fiddler代理。
         設置 —> WLAN —> 點擊已鏈接網(wǎng)絡的箭頭 —> 向下滑動屏幕找到代理,進行配置。

         選擇代理為手動。
         代理服務器主機名:填寫電腦的IP地址(步驟2查詢的)
         代理服務器端口:填寫Fiddler設置的代理端口(在步驟1種,Connections標簽頁中的配置)
         
       步驟5:安裝證書抓取HTTPS請求
         打開手機中的瀏覽器,輸入192.168.3.104:8888,這是你上面在手機中設置網(wǎng)絡代理Fiddler的服務地址。
         如果出現(xiàn)響應頁面說明訪問代理服務Fiddler成功,就可以安裝證書了。
         
         You can download the EiddlerRoot certificate:表示您可以下載Fiddler根證書。
        安裝Fiddler根證書
         打開設置 —> 更多設置 —> 系統(tǒng)安全 —> 加密與憑據(jù) —> 從存儲設備安裝,選擇下載好的FiddlerRoot.cer進行安裝。
         (不同的Android系統(tǒng)版本的位置不一樣,按照思路自己去找。)
         然后在手機中使用瀏覽器也好,或者打開短視頻App也好,就可以進行HTTP或者HTTPS請求的抓取了。
        注意:測試完畢,記得關閉代理,否則手機無法上網(wǎng)
          
        提示:
         從手機本地安裝Fiddler證書。
         我們可以把電腦中Fiddler安裝好的證書導出來,然后傳入手機存儲中。
         然后點擊設置 —> 安全 —> 從SD卡安裝 —> 證書存放的文件夾 —> 找到Fiddler證書。
         點擊Fiddler證書 —> 命名證書(一般為CA) —> 點擊確定進行證書安裝。
         
    2.IOS移動端App抓包(跟安卓手機步驟一樣的)
         iPhone和iPad都可以抓取。
         前提:
         確保被測終端要和安裝Fiddler的電腦在同一個局域網(wǎng)中。(也就是同一網(wǎng)段中)
         確保防火墻允許Fiddler進程可以遠程連接。(不行就關閉防火墻)
  
    問題1:需要注意的是,不是任何Https請求包都可以抓到的。
     Android7.0以下是可以的,只要手機里安裝對應的CA證書,比如用Charles抓包,手機只需安裝Charles提供的證書就行;
     Android7.0之后,Google推出更加嚴格的安全機制,應用默認不信任用戶證書(手機里自己安裝的證書),
     自己的app可以通過配置解決,但是抓其它app的Https請求就行不通
    
    問題2:如果不能,那些情況下可以抓取,那些情況下抓取不到?
     雖然Android7.0之后常規(guī)手段不能抓Https的包,例如,通過xposed,安裝JustTrustMe模塊,Https證書驗證直接跳過等需要驗證
 

5、能夠獨立跟蹤測試過程中遇到的問題,與開發(fā)良好溝通并解決問題,富有合作精神,遇到風險能及時反饋上級
     a.處理的方案
         第一步:定位問題,出現(xiàn)在那個環(huán)節(jié);二次復現(xiàn)問題
         第二步:記錄問題,判斷問題嚴重等級;(記錄問題復現(xiàn)的步驟,截圖、語言組織)
         第三步:修復問題,根據(jù)問題影響程度,跟相關環(huán)節(jié)的人員通知到位
         
     
6、熟悉web、H5、小程序、app等平臺軟件產品的測試
    a.web、H5、小程序、app的區(qū)別
     1. APP測試流程?
         APP測試流程與web測試流程類似,分為如下八個階段:

         1)測試計劃:根據(jù)需求說明書,項目計劃書等編寫;來確定測試各個階段所需時間,測試目標,風險評估等。
         2)測試方案:根據(jù)測試計劃明確測試方法,測試任務,測試人員,測試時間的分配和所需的資源。
         3)測試準備:搭建測試環(huán)境,準備測試數(shù)據(jù),測試人員分工;
         4)測試用例的設計與編寫:參考需求文檔,原型圖等,后進行用例評審及補充完善;
         5)執(zhí)行測試;進行冒煙測試,后對主功能流程進行測試,包括客戶端的單個功能模塊,及功能業(yè)務邏輯功能交互,
           回歸測試;再對正式環(huán)境進行完整系統(tǒng)測試
         6)提交測試結果:跟蹤測試結果,提交測試報告;
         7)文檔歸納:測試計劃、測試方案、測試用例、測試報告;
         8)日常維護性測試;

        APP測試周期可根據(jù)項目的開發(fā)周期來確定測試時間,一般測試時間為兩三周,根據(jù)項目情況以及版本質量可適當縮短或延長測試時間。
          
     2.APP測試需要提前準備哪些測試資源?

         具體要準備的測試資源,根據(jù)實際項目來,可以從以下幾個方面出發(fā):
         1.IOS設備、Android設備(選取市面上主流手機產品,模擬機)
         2.支付寶/銀聯(lián)支付的項目,需要提前申請支付寶/銀聯(lián)賬戶等
         3.有秒殺專題的題目,需要規(guī)劃秒殺時間表
         4.有優(yōu)惠券使用的項目,需要添加優(yōu)惠券數(shù)據(jù)

     3.APP測試和Web測試的區(qū)別?

         單純從功能測試的層面上來講的話,

         APP測試、web測試在流程和功能測試上是沒有區(qū)別的。

         相同點:
         1.同樣的測試用例設計方法;
         2.同樣的測試方法:都會依據(jù)原型圖或效果圖檢查UI;
         3.測試頁面載入和翻頁的速度、登錄時長、內存是否溢出等;
         4.測試應用系統(tǒng)的穩(wěn)定性;

         不同點:

        1.系統(tǒng)結構方面
         web項目,b/s架構,基于瀏覽器的;web測試只要更新了服務器端,客戶端就會同步更新。
         app項目,c/s結構的,必須要有客戶端;app 修改了服務端,則客戶端用戶所有核心版本都需要進行回歸測試一遍。

        2.性能方面
         web項目 需監(jiān)測響應時間、CPU、Memory;
         app項目 除了監(jiān)測響應時間、CPU、Memory外,還需監(jiān)測 流量、電量等;

        3.兼容性方面
         web項目:瀏覽器(火狐、谷歌、IE等);操作系統(tǒng)(Windows7、Windows10、Linux等)。
         app項目:設備系統(tǒng):iOS(ipad、iphone)、Android(三星、華為、聯(lián)想等) 、Windows(Win7、Win8)、OSX(Mac);
         手機設備可根據(jù) 手機型號、分辨率、屏幕尺寸不同

     4.相對于 Wed 項目,APP有專項測試
         1)干擾測試:中斷,來電,短信,關機,重啟等。
         2)網(wǎng)絡測試(模擬2g、3g、4g、5g,wifi網(wǎng)絡狀態(tài)以及丟包情況);網(wǎng)絡切換測試(網(wǎng)絡斷開后重連、3g切換到4g、5g/wifi 等)。
         3)安裝、更新、卸載,中斷、前后臺切換。
             安裝:需考慮安裝時的中斷、弱網(wǎng)、安裝后刪除安裝文件,全新安裝、升級安裝、第三方工具安裝等情況;
             卸載:需考慮第三方工具卸載、直接卸載卸,卸載后是否刪除app相關的文件;
             更新:分強制更新、非強制更新、增量包更新、斷點續(xù)傳、弱網(wǎng)狀態(tài)下更新;
             中斷:來電中斷、短信中斷、鬧鐘中斷、手機鎖定、手機斷電、手機死機;
         4)界面操作:關于手機端測試,需注意手勢,橫豎屏切換,多點觸控,前后臺切換。
         5)安全測試:安裝包是否可反編譯代碼、安裝包是否簽名、權限設置,例如訪問通訊錄等。
         6)邊界測試:可用存儲空間少、沒有SD卡/雙SD卡、飛行模式、系統(tǒng)時間有誤、第三方依賴(QQ、微信登錄)等。
         7)權限測試:設置某個App是否可以獲取該權限,例如是否可訪問通訊錄、相冊、照相機等。

     5.測試工具方面
        自動化工具:
         APP 一般使用 Appium;
         Web 一般使用 Selenium;
        性能測試工具:
         APP 一般使用Monkey、 JMeter;
         Web 一般使用 LR、JMeter;

     6.Android手機和IOS手機,系統(tǒng)有什么區(qū)別?
         1.兩者運行機制不同:IOS采用的是沙盒運行機制,安卓采用的是虛擬機運行機制。
        IOS 沙盒運行機制:
         每個程序都有自己的虛擬地址空間。所以,程序之間不能進行訪問。
         默認只會將應用的最后運行數(shù)據(jù),記錄在RAM里面。

        Android 虛擬機運行機制:
         所有的應用程序都是運行在虛擬機中,用戶界面其實是由虛擬機傳遞的,并且通過虛擬機,Android的任何程序都就可以輕松訪問其他程序文件。
         所有的Android的應用程序都是運行在RAM里面的,所以會發(fā)現(xiàn)有時候Android用著用著就開始有點卡頓。

    b.小程序、app的專項測試
     
7、補充
    es數(shù)據(jù)庫
    1、ES的介紹
        ElasticSearch簡稱ES,是一個高拓展和開源的全文搜索和分析引擎,可以準實時地存儲、搜索、分析海量的數(shù)據(jù)。
         它和MongoDB、redis等一樣是非關系型數(shù)據(jù)。是一個由Apache開源的高擴展、全文檢索和分析引擎(NoSQL數(shù)據(jù)庫功能)的系統(tǒng),
         它可以準實地快速存儲、搜索、分析海量的數(shù)據(jù)。全文檢索:全文檢索是指計算機索引程序通過掃描文章中的每一個詞,
         對每一個詞建立一個索引。指明該詞在文章中出現(xiàn)的次數(shù)和位置,當用戶查詢時,檢索程序就根據(jù)事先建立的索引進行查找,
         并將查找到的結果反饋給用戶的檢索方式。這個過程如同通過字典中的檢索字表查詢字的過程,全文搜索是搜索引擎數(shù)據(jù)庫中的數(shù)據(jù)。
        a:應用定位:采用Restful API標準的可擴展和高可用的實時數(shù)據(jù)分析的全文搜索工具。
        b:可拓展:開源軟件,支持很多第三方插件。
        c:高可用:在一個集群的多個節(jié)點中進行分布式存儲,索引支持shards和復制,即使部分節(jié)點down掉,也能自動進行數(shù)據(jù)恢復和主從切換。
           
    2、ES數(shù)據(jù)庫的特點 
         ① 基于java/lucene構建,支持實時搜索
         ② 分布式部署,可橫向集群擴展
         ③ 支持百萬級數(shù)據(jù)
         ④ 支持多條件查詢,如聚合查詢
         ⑤ 高可用,數(shù)據(jù)開源進行切片備份
         ⑥ 支持Restful風格的api調用

    3、ES的應用場景
         ① 監(jiān)控。對日志類數(shù)據(jù)進行存儲、分析、可視化。對日志數(shù)據(jù),ES給出了ELK的解決方案。其中l(wèi)ogstash采集日志,
           ES進行復雜的數(shù)據(jù)分析,轉換你的日志,并將他們存儲在es中,kibana進行可視化展示。
         ② 線上商城系統(tǒng),用戶需要搜素購物系統(tǒng)網(wǎng)站上的商品信息。es可以存儲所有的商品信息和一些庫存信息,
           用戶通過搜索引擎可以查詢到自己需要的商品信息。
         ③ json文檔數(shù)據(jù)庫。用于存放java格式的文檔。
         ④ 提供全文搜素并高亮關鍵字。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容