性能測試四十六:JavaMall項目需求調研和環境部署
javamall項目
一個完整的電子商務網站,包含瀏覽、搜索、支付、購物車、下單等功能
由於此項目為商業性的,所以部署的時候一檢測到時liunx系統就會無法訪問,所以需先在windows下部署(要求jdk1.7),做完配置後,再拷到liunx下
項目流程
1、需求調研
測試範圍:訂單流程、搜索
系統架構:tomcat+mysql
業務邏輯 & 數據流向:略
測試數據量:商品數量:10w,用戶數據:1w
外部依賴:有(支付),但是不需要測
預期指標:
1、業務監控系統,找到業務量峰值,除以機器數量,計算出單機系統每秒的業務量 * 性能冗余量(30%-50%)
2、訪問日誌統計接口調用量。或者數據庫表中查詢每天的寫入數據量 * 性能冗余量(30%-50%)
分析日誌裏面調用次數前十的接口:
命令:awk ‘{print $7}‘ access.log | sort | uniq -c | sort -rn | head -10:
{print $7}:先用空格對數據進行分割,然後找到第七位
sort:按照接口的名稱進行排序
uniq -c:去重、再排序
sort -rn:再排序的時候按統計出來的訪問次數倒序排序
head -10:打印前十行
3、28原則,只知道每天大概的業務總量,(每天的總業務量*80%) / (24小時*3600 *20%)/ 部署機器數量 / 性能冗余量(30%-50%) ,如,一天有10000的業務量,則認為有8000的業務量發生在24*3600*20%=17280秒內,則tps=8000/17280*機器數量*(30%--50%)
業務比例(混合場景):
下單:搜索=1:3
2、javamall項目環境部署
1,新建數據庫javamall,導入javamall.sql
把項目解壓到tomcat/webapps下
2,config目錄下的jdbc.properties文件、eop.properties文件裏的各種目錄設置,註意,windows下目錄為\\,如:D:\\test\\abc;Linux下為/,如/export/servers/
jdbc文件:
eop文件:
3,啟動tomcat,瀏覽器訪問http://localhost:8080/javamall/
註冊有一個賬號,看和數據庫有沒有連通:
3、腳本編寫
1),登錄驗證碼的常見解決思路:
a.讓開發提供一個萬能的驗證碼,每次校驗都可以通過
b.讓開發在測試環境中去掉驗證碼
c.使用驗證碼識別工具,在腳本中自動識別驗證碼,缺點是識別率不太高,容易出錯
2),下單場景:首頁-登錄-加購物車-下單
搜索場景:搜索
4、構造數據
先構造用戶數據:es_member表
再構造可下單的商品數據
a> goods表新增一條數據
b> product表新增一條數據,對應一個goods
c> 庫存表新增一條數據,對應goods和product
d> 獲取數據庫上一次的自增id函數:LAST_INSERT_ID();
5、執行壓測,尋找各接口tps拐點
6、服務器監控
CPU、內存、磁盤、網絡、JVM、線程、數據庫
7、測試報告
性能測試四十六:JavaMall項目需求調研和環境部署