loadrunner參數(shù)替換 如何在windows上編譯linux可用的動(dòng)態(tài)鏈接庫(kù)?
如何在windows上編譯linux可用的動(dòng)態(tài)鏈接庫(kù)?1.背景在最近的性能測(cè)試中,壓力測(cè)試的一些接口返回的數(shù)據(jù)是復(fù)雜的json格式字符串,后續(xù)接口需要修改這個(gè)字符串作為輸入?yún)?shù),自行處理比較麻煩。于是
如何在windows上編譯linux可用的動(dòng)態(tài)鏈接庫(kù)?
1.背景
在最近的性能測(cè)試中,壓力測(cè)試的一些接口返回的數(shù)據(jù)是復(fù)雜的json格式字符串,后續(xù)接口需要修改這個(gè)字符串作為輸入?yún)?shù),自行處理比較麻煩。于是想到把cjson編譯成動(dòng)態(tài)鏈接庫(kù),在loadrunner 的劇本。另外,由于實(shí)際壓力測(cè)量使用的是部署在linux上的負(fù)載機(jī),所以需要在linux上編譯一個(gè)動(dòng)態(tài)鏈接庫(kù)。這樣調(diào)試用的是windows平臺(tái)的dll,壓力測(cè)試用的是linu臺(tái)的so。先附上我編譯的動(dòng)態(tài)鏈接庫(kù),可以直接在loadrunner中使用。
2、cjson
Cjson是一個(gè)開源的json庫(kù)。它的優(yōu)點(diǎn)是完全用C實(shí)現(xiàn),所以適用性相當(dāng)廣,用在loadrunner上也沒(méi)有壓力。它的git主頁(yè)是。
平臺(tái)
打開vsual studio(我用的是vs2015,其他版本都可以,codeblock也可以,隨你喜歡),新建一個(gè)win32程序。選擇dll作為程序類型,并選擇一個(gè)空項(xiàng)目作為附加選項(xiàng)。將cJSON.c和cJSON.h拖到項(xiàng)目中。將編譯選項(xiàng)設(shè)置為release,x86(重要!),編譯。將編譯好的cjson.dll放在loadrunner腳本的根目錄下,然后在菜單File-Add file to script中添加cjson.dll。將cjson.dll加載到代碼中,然后就可以使用cjson 的功能。先試試吧,
注意這里的cjson_Version返回的是一個(gè)指針,但是loadrunner認(rèn)為是int,所以要顯式轉(zhuǎn)換成指針,否則編譯不會(huì)通過(guò)。
看看cjson 解析字符串的函數(shù)。其用法如下:
12這里需要使用cJSON.h中聲明的結(jié)構(gòu)cJSON,但是您可以 不要在loadrunner中通過(guò)直接引用cjson.h來(lái)編譯它。只需將cJSON.h中結(jié)構(gòu)cJSON的定義代碼復(fù)制到動(dòng)作的頂部即可,如圖cJSON.h,其他變量或宏也可以。如果編譯過(guò)程中有錯(cuò)誤,直接復(fù)制就好了。
臺(tái)
接下來(lái),在linu臺(tái)上編譯一個(gè)動(dòng)態(tài)鏈接庫(kù),在linux加載機(jī)上使用。Cjson s代碼包含MakeFile和cmake,可以直接編譯。但是,如果linux系統(tǒng)是64位的,默認(rèn)編譯是64位so,loadrunner無(wú)法加載,它會(huì)提示 "錯(cuò)誤的精靈class:精靈類64 "。我們需要要手動(dòng)修改MakeFile,讓它編譯一個(gè)32位的so。1.在cJSON的源目錄下修改Mak: sys/cd:沒(méi)有這樣的文件或目錄 "出現(xiàn)時(shí),您需要安裝另一個(gè)依賴庫(kù)。
123.編譯成功后,您將獲得一個(gè)名為。將其復(fù)制到loadrunner腳本的根目錄,并使用同一個(gè)菜單File-Add file to script將其添加到腳本中。4.在腳本中加載so,這與在windows上是一樣的。所以腳本可以在linux下運(yùn)行。你可以參考我的另一篇關(guān)于在linux上安裝加載器的文章。
125.遺留問(wèn)題
最后,還有一個(gè)遺留問(wèn)題。loadrunn
如何測(cè)試androidapp?
首先,測(cè)試資源的確認(rèn)和準(zhǔn)備。
(1)產(chǎn)品需求文件、產(chǎn)品原型圖紙、接口描述文件和設(shè)計(jì)描述文件應(yīng)完整;
(2)測(cè)試設(shè)備和工具的準(zhǔn)備:IOS和andriod不同版本的真機(jī),相關(guān)測(cè)試工具的準(zhǔn)備。
2.測(cè)試用例的設(shè)計(jì)和評(píng)審
(1)根據(jù)產(chǎn)品需求文檔、產(chǎn)品原型圖等文檔,設(shè)計(jì)客戶的通用功能測(cè)試用例;
(2)審查、修改和完善測(cè)試用例,審查通過(guò)后進(jìn)入正式測(cè)試階段。
3.用戶界面測(cè)試
(1)確保手頭的樣機(jī)圖紙和效果圖是最新版本,滿足產(chǎn)品經(jīng)理和用戶的要求;
(2)測(cè)試過(guò)程中一切以效果圖為準(zhǔn)。如果你對(duì)用戶體驗(yàn)有什么建議,可以先通過(guò)郵件和產(chǎn)品經(jīng)理確認(rèn)。確認(rèn)通過(guò)后,就可以正式向開發(fā)者詢問(wèn)用戶體驗(yàn)了。
(3)由于測(cè)試環(huán)境中的數(shù)據(jù)是模擬數(shù)據(jù),所以測(cè)試時(shí)必須提前考慮正式環(huán)境中可能出現(xiàn)的數(shù)據(jù)類型。
4.功能測(cè)試
(1)在功能測(cè)試中,主要根據(jù)編寫的功能測(cè)試用例來(lái)遍歷軟件功能;
(2)涉及的測(cè)試主要包括基本功能測(cè)試、安裝、卸載、運(yùn)行測(cè)試、異常處理(包括突然斷網(wǎng)或網(wǎng)速慢、機(jī)器內(nèi)存不足等異常情況的處理)。
5、中斷測(cè)試
(1)軟件運(yùn)行過(guò)程中接聽、接收短信、鎖屏、報(bào)警、充電,收到通知提醒后再使用軟件,軟件應(yīng)該還能正常運(yùn)行;
(2)軟件運(yùn)行時(shí),從前臺(tái)切換到后臺(tái)再切換回前臺(tái),應(yīng)該還能正常運(yùn)行。使用。
6、兼容性和適應(yīng)性測(cè)試
(1)硬件適配:不同手機(jī)廠商、硬件性能、不同屏幕尺寸的適配;
(2) OS版本兼容性:IOS 6-9;Andriod3以上,如果使用了一些新的API,而老系統(tǒng)上不支持,就會(huì)導(dǎo)致死機(jī);;
(3)不同分辨率屏幕的適配:移動(dòng)設(shè)備的分辨率五花八門,如果app處理不當(dāng),可能無(wú)法很好的顯示,甚至影響功能的操作。
(4)兼容性測(cè)試必須在一定數(shù)量的真機(jī)上進(jìn)行。因?yàn)檎鏅C(jī)種類太多,尤其是安卓在做兼容性測(cè)試的時(shí)候,可以選擇幾款使用較多的典型真機(jī)進(jìn)行兼容性測(cè)試。
(5)此外,在開源testin cloud的幫助下,可以測(cè)試更多模型的兼容性。testin cloud提供了基本的運(yùn)行條件,部分截圖和簡(jiǎn)單的測(cè)試報(bào)告,有助于擴(kuò)大測(cè)試的范圍。
7.特性試驗(yàn)
(1)客戶端性能測(cè)試重點(diǎn)關(guān)注:安裝卸載時(shí)間、啟動(dòng)時(shí)間、頁(yè)面加載時(shí)間、主要功能占用的CPU、內(nèi)存、流量、功耗,與同類產(chǎn)品相比是否有優(yōu)勢(shì);
(2)使用安卓調(diào)試工具DDMS可以獲得頁(yè)面加載時(shí)間,在DDMS搜索顯示的關(guān)鍵詞可以看到頁(yè)面加載時(shí)間;
(3)主要功能在運(yùn)行過(guò)程中占用的CPU、內(nèi)存、流量可以通過(guò)使用開源工具emmagee(安卓版)獲得;
(4)至于服務(wù)器的性能,接口主要用來(lái)給服務(wù)器施壓,重點(diǎn)是響應(yīng)時(shí)間,吞吐量,并發(fā),東西通過(guò)率,可以作為工具loadrunner,jmeter來(lái)測(cè)試。
8.穩(wěn)定性試驗(yàn)
(Android APP的穩(wěn)定性經(jīng)常被猴子命令測(cè)試,猴子命令通過(guò)隨機(jī)事件流模擬人的操作,對(duì)檢查程序的內(nèi)存溢出和空指針有很大的作用。
(2) Monkey主要用于檢測(cè)系統(tǒng)中的ANR和崩潰等問(wèn)題。
9.測(cè)試分析和測(cè)試報(bào)告輸出
在上述測(cè)試之后,一個(gè)完整的分析和報(bào)告文檔(包括buglist、性能和穩(wěn)定性結(jié)果分析、發(fā)布在線風(fēng)險(xiǎn)分析等。)并輸出給所有相關(guān)人員。
分享