精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

詳解C++ Server測試過程

開發(fā) 后端
我們將談?wù)凜++ Server測試過程,下面是筆者在開發(fā)中使用的測試方法,拋磚引玉,和大家交流下。

做好C++ Server測試也是進(jìn)行C++開發(fā)過程中的重要步驟,本文將從開發(fā)階段、白盒測試階段、內(nèi)存測試階段等幾個方面開始討論。

在C++的世界里,程序設(shè)計的優(yōu)雅讓位于程序的穩(wěn)定性、健壯性。“好程序是測出來的”這句話在C++領(lǐng)域里得到了充分體現(xiàn)。下面是我在開發(fā)中使用的測試方法,拋磚引玉,和大家交流下。

C++ Server測試期間,關(guān)閉對core文件的限制,使用命令:ulimit -c unlimited

(1)開發(fā)階段

使用cppunit維護(hù)測試用例。我一般是用于測試解析類、算法類。

從http://sourceforge.net/projects/cppunit/下載最新版本,解壓,看安裝文檔,一般是./configure & make & make install。

下面舉例說明我使用cppunit的方法。假設(shè)自己的源碼位于src目錄下,里面有class1.h/class1.cpp/class2.h/class2.cpp。相對src建立平級目錄test存放測試工程,為class1/class2分別建立測試類文件testClass1.h/testClass2.h,建立main函數(shù)所在文件test.cpp、makefile。

testClass1.h代碼如下,testClass2.h類似。

  1. #include "class1.h"  
  2. #include   
  3. #include "cppunit/TestRunner.h"  
  4. #include "cppunit/TestResult.h"  
  5. #include "cppunit/TestResultCollector.h"  
  6. #include "cppunit/extensions/HelperMacros.h"  
  7. #include "cppunit/BriefTestProgressListener.h"  
  8. #include "cppunit/extensions/TestFactoryRegistry.h"  
  9. #include "cppunit/TextOutputter.h"  
  10. #include "cppunit/CompilerOutputter.h"  
  11. #include "cppunit/TestCaller.h"  
  12. class testClass1:public CPPUNIT_NS::TestFixture  
  13. {  
  14. CPPUNIT_TEST_SUITE(testClass1);  
  15. CPPUNIT_TEST(testCase1);  
  16. CPPUNIT_TEST(testCase2);  
  17. CPPUNIT_TEST_SUITE_END();  
  18. public:  
  19. virtual void setUp(){}  
  20. virtual void tearDown(){}  
  21. void testCase1()  
  22. {  
  23. testClass1 a;  
  24. a.oper..;  
  25. CPPUNIT_ASSERT_EQAL(a.get..,);  
  26. }  
  27. void testCase2()  
  28. {  
  29. CPPUNIT_ASSERT(==);  
  30. }  

test.cpp代碼如下:

  1. #include "testClass1.h"  
  2. #include "testClass2.h"  
  3. #include   
  4. #include "cppunit/TestRunner.h"  
  5. #include "cppunit/TestResult.h"  
  6. #include "cppunit/TestResultCollector.h"  
  7. #include "cppunit/extensions/HelperMacros.h"  
  8. #include "cppunit/BriefTestProgressListener.h"  
  9. #include "cppunit/extensions/TestFactoryRegistry.h"  
  10. #include "cppunit/TextOutputter.h"  
  11. #include "cppunit/CompilerOutputter.h"  
  12. #include "cppunit/TestCaller.h"  
  13. CPPUNIT_TEST_SUITE_REGISTRATION(testClass1);  
  14. CPPUNIT_TEST_SUITE_REGISTRATION(testClass1);  
  15. int main()  
  16. {  
  17. CPPUNIT_NS::TestResult controller;  
  18. CPPUNIT_NS::TestResultCollector result;  
  19. controller.addListener( &result );  
  20. CPPUNIT_NS::TestRunner runner;  
  21. runner.addTest( CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest() );  
  22. runner.run( controller );  
  23. CPPUNIT_NS::CompilerOutputter out( &result, std::cout );  
  24. out.write();  
  25. return 0;  

makefile文件如下:

EXE=test

SRC=test.cpp

INC_PATH=-I ../src -I (cppunit頭文件的目錄) -I(依賴的其他頭文件路徑)

LIB_PATH=-L (cppunit動態(tài)庫所在的目錄) -L (依賴的其他庫所在目錄)

LIB=-lcppunit -ldl

all:

g++ $(SRC) $(LIB_PATH) $(LIB) $(INC_PATH) -o $(EXE)

再有新的需要測試類,增加相應(yīng)的測試類,稍微修改下test.cpp即可(增加一句#include,一句CPPUNIT_TEST_SUITE_REGISTRATION)。

保證開發(fā)結(jié)束后,解析類、算法類等不會有錯誤。

(2)白盒測試階段

這個基本是功能邏輯性測試,檢測所有數(shù)據(jù)結(jié)構(gòu)按要求變化以及保證各線程之間變化的一致性。這是最基本也是最全面的一次測試,保證測試的功能覆蓋率100%。白盒測試期間可以在代碼里加一些宏編譯選項或者增加程序交互功能用于觀察所有數(shù)據(jù)結(jié)構(gòu)的變化。

保證測試完畢沒有功能性、邏輯性的錯誤。

(3)內(nèi)存測試階段

使用valgrind檢測顯式內(nèi)存泄漏、內(nèi)存讀寫錯誤。

從http://www.valgrind.org/下載最新版本,解壓,看安裝文檔,一般是./configure & make & make install。

檢測內(nèi)存一般使用命令valgrind --tool=memcheck -v --leak-check=full ./待測程序錯誤的地方會用==×××==(×××表示數(shù)字)標(biāo)出。

使用一路模擬客戶端做陪測。保證測試完畢,單路客戶端陪測的情況下沒有任何的顯式內(nèi)存泄漏,沒有任何的內(nèi)存讀寫錯誤。

(4)寫批量客戶端模擬程序

建議熟悉一門方便socket編程的腳本語言,推薦perl。腳本語言簡單,實現(xiàn)快速,特適合做陪測。

首先寫一個能讀取配置文件信息,按配置文件的要求向相應(yīng)的server,按配置文件的流程發(fā)送信令的perl程序。

下面是我rtsp相關(guān)的一個server陪測的配置文件:

ip=127.0.0.1

port=9115

url=rtsp://172.24.202.190:554/asset/service?USERID=320101312345670001&ChanelNo-PUID=0-320101000200000001&PlayMethod=0

其中ip是server IP,port是rtsp端口,url是發(fā)送信令帶的url。<>表示按順序發(fā)送的信令,這個配置文件表示先發(fā)送一個setup,然后sleep 2秒,再發(fā)送一個play,然后sleep 2秒,繼續(xù)......這個程序可作為(3)中的陪測程序。

在上面程序的基礎(chǔ)上修改,讀取配置文件后,死循環(huán)按順序發(fā)送信令,假設(shè)該程序稱做B。

寫一個新的perl文件,完成如下功能,起幾十路使用某配置文件的B程序,sleep幾秒后,再起幾十路使用其它配置文件的B程序.....,或者一起起也可以,自行設(shè)計,最后killall所有,從頭循環(huán)運行。

總之盡可能的模擬客戶端的所有行為,包括突然斷聯(lián)等,并且保證一定的壓力。

(5)壓力下測試內(nèi)存

繼續(xù)在valgrind下測試,使用(4)中的測試腳本做配測。

保證壓力下無異常狀態(tài)、無數(shù)據(jù)不一致狀態(tài)、無顯式內(nèi)存泄漏、無內(nèi)存讀寫異常。

(6)穩(wěn)定性以及內(nèi)存泄漏測試

陪測腳本起幾百路客戶端,保證主程序的cpu占用率在70%以上,持續(xù)運行20多小時。

測試期間,關(guān)注進(jìn)程對內(nèi)存的占用率,是保持在恒定水平還是隨運行時間的增長而增長。

測試完畢,保證主程序負(fù)荷運行長時間而不宕機(jī)、沒有內(nèi)存泄漏發(fā)生。

(7)代碼覆蓋率測試。gcov

gcov是隨gcc安裝的,可以檢查陪測程序?qū)δ繕?biāo)程序的代碼覆蓋情況。

不斷修改測試腳本,保證測試盡量全面。代碼被執(zhí)行的次數(shù)也可以做為以后性能測試的一個參考。

(8)性能測試。gprof

同gcov一樣,gprof也是隨gcc安裝的,它可以檢測目標(biāo)程序中所有函數(shù)的調(diào)用時間,并根據(jù)消耗時間排序,方便找出性能瓶頸。

找出系統(tǒng)的主要性能瓶頸,經(jīng)過性能測試后,一般會發(fā)現(xiàn)影響系統(tǒng)的主要因素還是數(shù)據(jù)結(jié)構(gòu)和算法。

C++ Server測試期間,任何的coredump/任何的內(nèi)存讀寫異常,務(wù)必處理掉。墨菲法則說,一個事情如果有可能變糟,事實則是會變的更糟。任何一個微小的、出現(xiàn)幾率極小的bug,如果不在研發(fā)測試階段解決,都可能造成以后更大代價的返工,甚至給客戶的運營帶來災(zāi)難。希望在每個人身上生效的都是馬太效應(yīng),而不是墨菲法則。

【編輯推薦】

  1. 關(guān)于new和delete 一些不得不說的事
  2. 《Java編程思想》作者:C++不垃圾,只是Java很傲慢
  3. Java與C++語言在作用域上的差異淺析
  4. C/C++使用多種方法獲取文件大小代碼
  5. C++類成員函數(shù)的重載、覆蓋與隱藏
責(zé)任編輯:彭凡 來源: ITPUB
相關(guān)推薦

2011-07-28 15:47:20

IOS 程序 測試

2011-06-08 16:52:16

軟件測試

2010-04-22 10:22:04

負(fù)載均衡器

2010-01-15 14:10:42

C++單元測試

2010-11-11 09:40:34

BUG

2010-01-13 16:54:29

C++測試

2011-07-04 14:08:02

C++

2021-12-21 15:31:10

C++語言指針

2011-04-20 09:50:45

Virtual

2009-06-22 11:15:00

J2EE應(yīng)用測試

2023-11-09 23:56:21

2010-02-02 11:16:28

C++異常

2010-01-18 16:17:53

C++代碼

2024-01-22 10:49:55

C++for循環(huán)

2019-06-04 06:02:25

滲透測試漏洞腳本

2010-08-12 18:08:03

ibmdwRational

2010-09-16 17:53:12

Java編譯

2024-01-18 10:27:30

C++引用函數(shù)

2011-03-30 17:20:18

C++引用

2010-02-01 16:13:15

C++繼承
點贊
收藏

51CTO技術(shù)棧公眾號

国产真实乱偷精品视频| 97中文字幕在线观看| 国产黄色在线| 精品一区二区三区在线视频| 欧美精品在线视频观看| 精品久久久久久无码人妻| 色在线免费观看| 国产精品久久久一本精品| 97人人模人人爽人人少妇| 日本在线小视频| 区一区二视频| 欧美精品一区二区三区一线天视频 | 日韩高清一区| 一本色道久久综合亚洲精品按摩| 中文字幕不卡每日更新1区2区| 国 产 黄 色 大 片| 日本亚洲天堂网| 欧美精品第一页在线播放| 影音先锋制服丝袜| 盗摄牛牛av影视一区二区| 在线视频一区二区免费| 激情小视频网站| 日本在线免费看| 久久久久久影视| av一本久道久久波多野结衣| 中文字幕 人妻熟女| 亚洲精品美女| 欧美猛少妇色xxxxx| 欧美人妻一区二区三区| 国产一区在线电影| 欧美一区二区日韩| 超碰成人在线播放| 日韩av一级| 精品久久久久久亚洲国产300| 国产美女视频免费| yjizz视频网站在线播放| av一区二区不卡| 亚洲在线www| 一级黄色片免费看| 男女性色大片免费观看一区二区 | 亚洲国产欧美久久| 青娱乐国产精品视频| 日韩毛片一区| 欧美在线免费播放| 国产91在线视频观看| 日本色护士高潮视频在线观看| 中文字幕一区二区三区视频| 翔田千里亚洲一二三区| 欧美孕妇孕交xxⅹ孕妇交| 成人av电影在线| 成人免费视频网站| 亚洲第一成人av| 国产99久久久国产精品| 91中文在线视频| 99国产精品久久久久99打野战| 蜜桃av一区二区在线观看| 国产黑人绿帽在线第一区| 亚洲精品男人的天堂| 另类图片国产| 欧美亚洲激情视频| 中文字幕高清在线免费播放| 欧美中文日韩| 国产99视频精品免视看7| 欧美啪啪小视频| 视频在线观看91| 国产精品爽黄69天堂a| 中文字幕在线播放不卡| 精东粉嫩av免费一区二区三区| 亚洲一区二区在线播放| 精品国产亚洲av麻豆| 国产69精品久久久久毛片| 国产精品乱码一区二区三区| 色一情一乱一乱一区91av| 99久久亚洲一区二区三区青草 | 国产成人黄色网址| www.久久爱.com| 日韩午夜激情av| 亚洲色偷偷色噜噜狠狠99网| 亚洲都市激情| 久久精品91久久香蕉加勒比| 久久久香蕉视频| 亚洲欧美日韩视频二区| 国产精品国模在线| 99在线观看精品视频| 不卡电影一区二区三区| 色涩成人影视在线播放| 黄色网在线免费观看| 午夜精品123| 99视频在线视频| 免费看一区二区三区| 亚洲精品成人久久电影| 国产美女永久免费无遮挡| 亚洲五月综合| 欧美一级大片在线免费观看| 一级黄色片在线观看| 成人午夜av影视| 日韩高清av| av网站导航在线观看免费| 欧美日韩在线视频首页| 中文字幕永久有效| 卡通动漫精品一区二区三区| 中文字幕亚洲自拍| 黄色小视频在线免费看| 喷水一区二区三区| 国产在线一区二| 素人av在线| 精品免费在线观看| 91福利免费观看| 欧美亚洲国产日韩| 久久不射电影网| 69视频免费看| 成人av网在线| 国产911在线观看| 亚洲第一二三四区| 亚洲第五色综合网| 亚洲伦理一区二区三区| 男人天堂欧美日韩| 黑人中文字幕一区二区三区| 免费av不卡| 在线区一区二视频| 国产原创剧情av| 欧美伊人久久| 国产精品普通话| 亚洲欧美色视频| 亚洲尤物视频在线| 日本在线观看视频一区| 日本女优一区| 国产精品成人品| 丝袜视频国产在线播放| 亚洲一区二区在线观看视频 | 亚洲美女www午夜| 久久亚洲精品大全| 精品一区二区三区不卡| 亚洲成色最大综合在线| 日本免费一区二区三区四区| 日韩av影视综合网| 日韩激情一区二区三区| 国产福利视频一区二区三区| 99热这里只有精品7| 美女视频一区| xxxx欧美18另类的高清| 在线免费a视频| 国产女同互慰高潮91漫画| 日韩精品一区二区三区久久| 国产人妖ts一区二区| 国产综合在线看| 人人妻人人澡人人爽人人欧美一区 | 91麻豆精品91久久久久久清纯| 五月婷婷婷婷婷| 蜜桃久久精品一区二区| 影音先锋亚洲视频| 95精品视频| 精品激情国产视频| 国产乱淫av片免费| 亚洲精品videosex极品| 青娱乐国产精品视频| 国产综合自拍| 国产精品久久精品国产| 成人在线高清免费| 亚洲国产高潮在线观看| 色婷婷在线观看视频| 99精品国产热久久91蜜凸| 欧美成人免费在线观看视频| 色先锋久久影院av| 国产精品91在线| 在线视频1区2区| 制服丝袜一区二区三区| 欧美极品视频在线观看| bt欧美亚洲午夜电影天堂| 欧美黄网站在线观看| 精品欧美久久| 亚洲一区二区久久久久久| 色婷婷在线播放| 日韩精品www| 亚洲一区在线观| 一区二区三区在线视频观看58| 中文字幕在线播放一区| 日韩精品三区四区| 视频一区二区视频| 国产乱论精品| 国产精品青青在线观看爽香蕉| 在线看女人毛片| 日韩av在线播放资源| 中文字幕日韩国产| 亚洲自拍与偷拍| 中文字幕人妻一区二区三区在线视频| 九九九久久久精品| 久久国产精品视频在线观看| 日韩精品一区二区三区免费观看| 亚洲mm色国产网站| 黑人巨大精品欧美一区二区桃花岛| 综合国产在线观看| 亚洲av成人精品毛片| 欧美人成免费网站| 亚洲精品视频在线观看免费视频| 欧美国产欧美综合| 国产av一区二区三区传媒| 日韩av不卡在线观看| 人妻少妇精品久久| 色小子综合网| 精品一区在线播放| 精品国产一区二| 日韩av免费在线播放| 欧美人与性动交α欧美精品济南到 | 欧美一二区在线观看| 91九色蝌蚪成人| 成人开心激情| 午夜免费日韩视频| 黄色免费在线观看网站| 亚洲欧洲国产一区| 欧美亚洲精品在线观看| 91麻豆精品91久久久久久清纯 | 久久99精品国产99久久| av日韩在线免费观看| 国产精品第三页| 黑森林国产精品av| 欧美黑人xxxⅹ高潮交| 欧美日韩xx| 在线播放精品一区二区三区| 少妇av在线播放| 欧美一区二区三区在线观看| 精品久久久久久久久久久久久久久久久久 | 91精品国产色综合久久不卡蜜臀 | 国产精品国模大尺度视频| 欧亚乱熟女一区二区在线| 免费亚洲电影在线| 欧美伦理视频在线观看| 亚洲一区日韩在线| 777av视频| 国产综合欧美| 久久亚洲a v| 伊人久久大香线蕉精品组织观看| 亚洲欧洲精品一区二区| 精品盗摄女厕tp美女嘘嘘| 精品国产一二| 加勒比色综合久久久久久久久| 亚洲最大av网| 国产午夜亚洲精品一级在线| 国产日韩欧美在线看| 成人国产网站| 国产精品视频色| 亚洲精品555| 国产精品露脸自拍| 日韩影片中文字幕| 国产www精品| 桃色一区二区| 日韩免费观看高清| 婷婷六月国产精品久久不卡| 国产精品99免视看9| 深夜视频一区二区| 国产欧美一区二区三区在线看 | 都市激情久久久久久久久久久| 99精品视频在线免费播放| 国产一区视频在线播放| 99久热在线精品视频观看| 国产精品一区二区久久| 久久人体av| 亚洲一区亚洲二区| 天堂va在线高清一区| 成人性色av| 欧美变态网站| 日韩av电影免费播放| 日韩成人综合| 国产精品12p| 亚洲国产精品一区制服丝袜| 女人和拘做爰正片视频| 天堂久久久久va久久久久| 男操女免费网站| 国内精品伊人久久久久av一坑 | 久久影院视频免费| av永久免费观看| 亚洲精品一二三| 日本少妇做爰全过程毛片| 日韩欧美亚洲范冰冰与中字| 亚洲成人av网址| 91精品婷婷国产综合久久| 俄罗斯嫩小性bbwbbw| 日韩精品在线播放| 久操视频在线| 久久久久久久香蕉网| a欧美人片人妖| 国产欧美一区二区三区久久人妖| 亚洲一区电影| 日韩hmxxxx| 国产精品草草| 国产精品无码一本二本三本色| 韩国女主播成人在线观看| 亚洲精品乱码久久久久久蜜桃欧美| 久久婷婷国产综合精品青草| 中文字幕美女视频| 天天综合天天综合色| 中文字字幕在线观看| 精品久久久久久久久久久久包黑料| 青青草视频在线免费观看| 久久久www成人免费精品| 男人av在线播放| 91精品免费看| 奇米狠狠一区二区三区| 成人高清dvd| 日韩成人精品视频| 好男人香蕉影院| 18涩涩午夜精品.www| 中文字幕第四页| 日韩精品一区二区三区在线观看 | av免费观看国产| 紧缚奴在线一区二区三区| 国产精品嫩草av| 亚洲欧美偷拍三级| 91黑人精品一区二区三区| 欧美大片在线观看一区二区| av电影在线观看网址| 午夜欧美不卡精品aaaaa| 久久久久久久久成人| 色99中文字幕| 欧美亚洲网站| 中国免费黄色片| 亚洲精品视频在线观看免费| 中文字幕久久熟女蜜桃| 国产视频久久久久久久| 精精国产xxxx视频在线中文版| 成人av.网址在线网站| 欧美色婷婷久久99精品红桃| 天天夜碰日日摸日日澡性色av| 国产不卡免费视频| 日韩一区二区三区四区视频| 日韩欧美有码在线| 五月激情婷婷网| 久久久综合av| 亚洲日本va| 色哺乳xxxxhd奶水米仓惠香| 久久精品久久99精品久久| 日韩毛片无码永久免费看| 精品欧美国产一区二区三区| 亚洲女人18毛片水真多| 欧美高跟鞋交xxxxxhd| 精品国产亚洲一区二区三区| 一区二区三区欧美在线| 男男视频亚洲欧美| 貂蝉被到爽流白浆在线观看| 91九色02白丝porn| 国产视频网站在线| 国产精品久久一区| 色一区二区三区四区| 久久国产精品国产精品| 国产精品剧情在线亚洲| 亚洲视频一区在线播放| 丝袜美腿精品国产二区| 久久国内精品| 在线不卡日本| 狠狠久久亚洲欧美| 国产精品久久久久久久精| 日韩一级片网址| 欧美v亚洲v| 国产视频一区二区三区四区| 亚洲韩日在线| 亚洲做受高潮无遮挡| 色菇凉天天综合网| 欧美三级黄网| 波多野结衣成人在线| 日韩午夜av在线| 最新中文字幕视频| 在线观看国产精品网站| 午夜视频在线观看免费视频| 成人激情免费在线| 韩国亚洲精品| 91精品国产自产| 欧美性欧美巨大黑白大战| 秋霞影院午夜丰满少妇在线视频| 91久久嫩草影院一区二区| 黄色成人精品网站| 日韩精品卡通动漫网站| 欧美视频中文一区二区三区在线观看| 快射视频在线观看| 国内精品国语自产拍在线观看| 午夜一区不卡| 老司机深夜福利网站| 欧美xxxxxxxx| www.日韩| 性做爰过程免费播放| 99视频精品在线| 青娱乐在线免费视频| 欧美激情亚洲综合一区| 中文字幕中文字幕精品| 亚洲一区二区中文字幕在线观看| 亚洲国产sm捆绑调教视频| 国产精品影院在线| 亚洲精品免费网站| 久久一区二区三区四区五区 | 调教+趴+乳夹+国产+精品| 成人高清在线| 国产精品国产精品国产专区蜜臀ah| 久久性色av| 久久综合综合久久| 一区二区三区回区在观看免费视频| 久久久国产精品入口麻豆| 国产一级片黄色| 亚洲成人av电影| 免费在线看a| 欧美一区二区综合| 成人网男人的天堂|