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格式的文檔。
④ 提供全文搜素并高亮關鍵字。
總結-4
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。