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