需要進(jìn)行需求分析,數(shù)據(jù)庫模型設(shè)計(jì),框架開發(fā),程序開發(fā),測試,最起碼要20人左右的團(tuán)隊(duì)3個(gè)月到半年時(shí)間,如果是找公司做項(xiàng)目的話,500w起,自己組隊(duì)的話,也得100w以上的人力成本。
成都創(chuàng)新互聯(lián)公司從2013年成立,先為桂林等服務(wù)建站,桂林等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為桂林企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
至于說幾萬塊的那種,做出來的東西,先不說客戶體驗(yàn)如何,能不能通過壓力測試都是兩說。
我先說幾點(diǎn),看看幾萬塊能做下的公司有幾個(gè)能做到的。
1.一個(gè)完善的數(shù)據(jù)庫模型才是支撐系統(tǒng)長期運(yùn)行的基礎(chǔ),從訂單流程,支付渠道,客戶等級(jí)制度,客戶積分體系,實(shí)現(xiàn)秒殺,團(tuán)購等功能,必須是數(shù)據(jù)模型都支持的,并且能確保所有業(yè)務(wù)都能通過的。
2.商品檢索,你看下那幾個(gè)網(wǎng)站的例子,商品搜索支持多種屬性,比如衣服,包括,性別,尺碼,顏色,款式,風(fēng)格,季節(jié),部位等各種檢索信息,如何支持這些各種屬性,快速的商品查詢?這些數(shù)據(jù)不可能都存到一個(gè)數(shù)據(jù)表里,因?yàn)槊總€(gè)商品的屬性類型都是不確定的,而且隨時(shí)可能增加,一般主流網(wǎng)站都是采用nosql的方式來實(shí)現(xiàn)。
3.商品瀏覽,一個(gè)商品查看頁面可能包括成千上萬種商品,即便進(jìn)行分頁,最起碼也是幾百個(gè)商品,商品介紹都會(huì)包括圖片,怎么能讓頁面快速顯示?這方面一般都采用動(dòng)態(tài)加載。
暫時(shí)想到這些,除此之外可能遇到的技術(shù)瓶頸可能還有很多,幾萬塊可能做下來?
再說,一套o(hù)racle幾十萬,用來跑幾萬塊的程序,靠得住么。
在Jmeter中建立一個(gè)JDBC Request 測試計(jì)劃主要分兩步。
(1)設(shè)置JDBC連接池(在JDBC Connection Configuration)
(2)添加JDBC Request
其他步驟就是設(shè)置參數(shù)化、斷言、監(jiān)聽結(jié)果。
第一步:添加 JDBC Connection Configuration
需要設(shè)置jdbc線程池變量的名稱,這里設(shè)置為jdbcConfig,這個(gè)變量在JDBC Request中要使用的;還有要設(shè)置Database URL,格式為:jdbc:mysql://localhost:3306/chen?serverTimezone=UTCcharacterEncoding=utf-8,注意:?后面的serverTimezone=UTCcharacterEncoding=utf-8不能缺少,否則會(huì)報(bào)時(shí)區(qū)錯(cuò)誤。
第二部:設(shè)置JDBC Request
壓力測試的范疇非常大的,包括磁盤io 網(wǎng)絡(luò)吞吐 應(yīng)用程序測試等
一般專業(yè)的做法是請(qǐng)測試工程師幫忙測試
磁盤io測試工具你可以考慮SQLIO SQLIOSIM 微軟自己的東西你可以放心
網(wǎng)絡(luò)吞吐測試工具就比較廣泛了 比如樓上也有人提到TTCPW,還有你可以參考一些黑盒壓力測試軟件比如qacenter等!
SQLSERVER帶的命令行實(shí)用工具用來運(yùn)行特殊的T-SQL語句和腳本。這個(gè)工具不是很常用。語法:首先CMD進(jìn)入控制臺(tái),然后輸入SQLCMD進(jìn)入默認(rèn)的實(shí)例。-S實(shí)例名連接命名實(shí)例-i腳本文件運(yùn)行-o文件名將輸出結(jié)果保存到指定文件
使用--auto-generate-sql參數(shù)表示用mysqlslap工具自己生成的SQL腳本來測試并發(fā)壓力
mysqlslap --auto-generate-sql -uroot -p123456
并發(fā)測試,使用–concurrency來模擬并發(fā)連接,連接數(shù)可以多個(gè),用逗號(hào)隔開
mysqlslap --auto-generate-sql --concurrency=100 -uroot -p123456
mysqlslap --auto-generate-sql --concurrency=50,100 -uroot -p123456
使用--iterations模擬迭代測試,用于需要多次執(zhí)行測試得到平均值。
mysqlslap --auto-generate-sql --iterations=5 -uroot -p123456
使用--engine測試不同的存儲(chǔ)引擎的性能進(jìn)行對(duì)比
mysqlslap --auto-generate-sql --concurrency=50,100 --iterations=5 --engine=myisam,innodb -uroot -p123456
--query=name,-q 指定自定義腳本執(zhí)行測試,例如可以調(diào)用自定義的一個(gè)存儲(chǔ)過程或者sql語句來執(zhí)行測試。--create-schema 指定自定義的測試數(shù)據(jù)庫名稱,
mysqlslap --auto-generate-sql --concurrency=50,100 --create-schema="landclash" --query="call landclash.sp_player_getname(34);" --number-of-queries=5000 -uroot -p123456
壓力測試工具mysqlslap 使用幫助--help介紹的很詳細(xì),下面是一些常用的選項(xiàng)。根據(jù)幫助文檔就可以自己敲命令進(jìn)行壓力測試了。
--concurrency代表并發(fā)數(shù)量,多個(gè)可以用逗號(hào)隔開,當(dāng)然你也可以用自己的分隔符隔開,這個(gè)時(shí)候要用到--delimiter開關(guān)。
--engines代表要測試的引擎,可以有多個(gè),用分隔符隔開。
--iterations代表要運(yùn)行這些測試多少次。
--auto-generate-sql 代表用系統(tǒng)自己生成的SQL腳本來測試。
--auto-generate-sql-load-type 代表要測試的是讀還是寫還是兩者混合的(read,write,update,mixed)
--number-of-queries 代表總共要運(yùn)行多少次查詢。每個(gè)客戶運(yùn)行的查詢數(shù)量可以用查詢總數(shù)/并發(fā)數(shù)來計(jì)算。比如倒數(shù)第二個(gè)結(jié)果2=200/100。
--debug-info 代表要額外輸出CPU以及內(nèi)存的相關(guān)信息。
--number-int-cols 代表示例表中的INTEGER類型的屬性有幾個(gè)。
--number-char-cols 意思同上。
--create-schema 代表自己定義的模式(在MySQL中也就是庫)。
--query 代表自己的SQL腳本。
--only-print 如果只想打印看看SQL語句是什么,可以用這個(gè)選項(xiàng)。
mysqlslap對(duì)于模擬多個(gè)用戶同時(shí)對(duì)MySQL發(fā)起“進(jìn)攻”提供了方便。同時(shí)詳細(xì)的提供了“高負(fù)荷攻擊MySQL”的詳細(xì)數(shù)據(jù)報(bào)告。而且如果你想對(duì)于多個(gè)引擎的性能。這個(gè)工具再好不過了。