導航:首頁 > 源碼編譯 > 為什麼同樣的腳本編譯不能通過

為什麼同樣的腳本編譯不能通過

發布時間:2025-08-09 02:18:21

Ⅰ LoadRunner登錄腳本認證失敗的原因及解決方法

測試對象:某Web即時通訊系統(以下稱WebIM)
開發語言:XML
數據通訊協議:Web(HTTP/HTML)協議、Windows Sockets協議
底層資料庫:Mysql
伺服器操作系統:Redhad 4
腳本實現功能:登入系統後,再退出系統。
問題1:錄制開發的腳本可以成功回放,但是資料庫的logout表裡卻查不到「登出」的用戶?
分析:錄制的時候只選用了單協議:Web(HTTP/HTML)協議,而WebIM的實現不只用到了Web(HTTP/HTML)協議,也用到了 Windows Sockets協議。在定位了問題的"原因"之後,筆者嘗試錄制多協議的腳本,結果回放失敗。回放失敗是因為Webim在登錄的過程中有個加密驗證的過程。腳本回放時提交了上一次的經過Sha1加密後的密文,而此時伺服器端的Sha1密文已經發生了改變。從而導致了失敗。
解決方法:
a、使用雙協議錄制腳本
b、開發Sha1演算法的DLL文件並在腳本中調用。
問題2:錄制的腳本中並沒有捕獲到伺服器返回的Session ID?
分析和方案:Webim的開發用到了XML和Windows Sockets協議,因此按照正常的思路,Loadrunner在錄制腳本時,也應該採用XML和Windows Sockets協議,但實際情況是這樣的,錄制的腳本中並沒有捕獲到伺服器返回的Session ID。既然公司內網的Jabberd伺服器有專門的測試客戶端,筆者決定通過這個客戶端錄制腳本,由於這個客戶端和伺服器的通信協議是Windows Sockets,因此錄制協議也採用了這個最底層的協議。這一次,錄制的腳本中捕獲到了伺服器返回的Session ID。為了保證腳本回放時能夠動態的獲取到這個Session ID,需要做「關聯」操作,筆者使用了lrs_save_searched_string()函數,對腳本做了處理。
問題3:如何調用Dll來對伺服器返回的序列和Password加密,以產生Sha1的密文?
分析和方案:腳本中載入了Dll庫文件後,在調用庫文件中的加密函數對Session ID+Password字元序列加密時,必須採用如下格式endes(a,b),其中的a代表源序列,b代表密文。經過這樣的步驟處理後,調試腳本,就可以看到密文了。
問題4:Buf中參數化密文後,腳本還是不能編譯通過,存在語法錯誤?
分析和方案:發現Loadrunner參數化,是按照它內置的機制執行的,符合這個機制,編譯就能通過。
後來在Gen中的Tools—general option中找到了可以更改這個機制的地方,修改完了之後,腳本再次編譯,這次OK了。
問題5:錯誤提示:沒有足夠的虛擬用戶分配給這個NewPara?
分析和方案:loadrunner中在對用戶名和密碼或其他數據參數化了以後,不要將參數刪除後,重新參數化,否則就會出現上述問題。筆者決定重新錄制腳本,重新參數化,重新修改腳本。事實證明這樣做是正確的,編譯運行後,5個虛擬用戶的腳本正確無誤的通過。

Ⅱ 【安卓實踐】apex導致的安卓編譯失敗原因調查

在實現功能的時候,我把我的功能邏輯實現在libmeminfo.so庫當中。
由於我的功能需要調用libmemtrack.so庫中的一些函數,我就在libmeminfo的androidbp中將libmemtrack.so動態連接過來了。如下:

這樣增加之後無論是在 其他so庫中調用我提供的方法,還是單獨編譯libmeminfo都可以編譯通過,並且功能驗證不會有問題。
但是當我帶patch編譯整個rom包的時候,卻報了以下錯誤:

拿到這個錯誤的時候,由於這個錯誤最多是「Unexpected file 'lib64/libmemtrack.so'」這一行與我的修改有關系,
所以我一度覺得不是我的問題。後來調查了兩個小時我才發現編譯錯誤的原因。

確實我的修改不會導致問題,但是在安卓編譯的過程中編譯com.android.runtime.debug時,編譯腳本會檢查/apex/com.android.runtime.debug/目錄下多個目錄lib/lib64/bin/以及lib/bionic等路徑下是否包含非法的so庫。
如果包含非法的so庫,就會在編譯腳本中報錯,導致rom包的編譯失敗。

修改編譯腳本,執行「make art-check-debug-apex-gen -j16」列印expected_paths如下:

可以看到libmeminfo.so包含在這些庫當中。
這意味著,如果我在libmeminfo.so中想要動態連接其他非expected_paths中的so庫,如libmemtrack,就會在編譯的時候把libmemtrack放在apex/com.anroid.runtime.debug/lib64/路徑下。
而編譯腳本會檢查此路徑下的庫是否都是expected_paths中所包含的庫,如果不是,就會報錯。
而這次報錯中之所以會有其他庫如libhwbinder.so,原因是libmemtrack動態連接了這些庫。
至此,問題原因調查完畢。
那隻能換一種方式實現我的功能了,至少不能放在libmeminfo.so中去實現。

Ⅲ Aut2exe編譯AU3腳本時不能用,提示不能讀取autoit根(stub)文件,AUTOITSC.BIN

如果不是au3程序或缺少程序中要包含的文件問題試著勾選ansi編碼,直接上圖看

Ⅳ 代碼有點問題,運行腳本是提示編譯器錯誤怎麼回事

在執行腳本過程中遇到編譯器錯誤,首先需要檢查你使用的腳本文件是否正確。請將以下示例中的文件替換成你自己的腳本,例如「C:WINDOWSsystem32smss.exe:527176172.vbs」。


具體操作步驟如下:首先打開「開始」菜單,點擊「運行」,輸入「regedit」,然後確定。接著按Ctrl+F,在彈出的查找對話框中輸入「C:WINDOWSsystem32smss.exe:2075451338.vbs」,點擊查找。如果找到相關條目,可以嘗試刪除。如果刪除不成功,可以考慮使用autoruns工具來清理。下載該工具後解壓並打開,選擇「系統全部啟動項」,點擊「全部標簽」,找到載入時出錯的項「C:WINDOWSsystem32smss.exe:2075451338.vbs」。右鍵選擇刪除,重啟電腦後該問題應該會消失。


如果你依然遇到問題,可能需要檢查腳本文件的路徑或文件名是否正確。確保腳本文件存在於指定路徑,並且文件名沒有錯誤。此外,還需確認腳本文件的編碼是否正確,有時不同編碼的文件可能會導致編譯器錯誤。


如果以上方法都無法解決問題,建議檢查腳本文件的內容是否有語法錯誤。可以嘗試將腳本文件的內容復制到一個新的文本編輯器中,逐行檢查語法錯誤。另外,確保你的編譯器或解釋器版本與腳本兼容,有時版本不匹配也會導致編譯器錯誤。


最後,可以嘗試重新安裝你的編譯器或解釋器,確保安裝過程沒有遺漏。安裝時仔細閱讀安裝向導,確保所有步驟都正確完成。


如果問題仍然存在,建議查閱相關文檔或在線論壇尋求幫助,提供詳細的錯誤信息有助於更快地解決問題。


下載地址:點擊這里

閱讀全文

與為什麼同樣的腳本編譯不能通過相關的資料

熱點內容
svn終端命令 瀏覽:122
雲硬碟想必用過雲伺服器的都會有 瀏覽:351
藍牙未加密怎麼看 瀏覽:297
租用伺服器怎麼避免上當 瀏覽:80
東華大學萬燕編譯原理四元式 瀏覽:833
天行九歌焰靈姬ph解壓碼 瀏覽:431
能在手機上使用的c語言編譯器 瀏覽:925
ps解壓在哪裡 瀏覽:164
有個木頭人的解壓游戲叫什麼 瀏覽:30
jit的實現編譯 瀏覽:687
isd4004單片機 瀏覽:538
文件夾很調皮哦 瀏覽:7
如何設置代理伺服器看視頻 瀏覽:36
曼昆第六版pdf 瀏覽:842
程序員幾年能做經理 瀏覽:686
python新建空數組 瀏覽:118
雲伺服器都在哪裡 瀏覽:250
怎麼看編譯器是多少位 瀏覽:60
程序員罵用戶怎麼辦 瀏覽:359
夢幻轉服的原伺服器是指什麼 瀏覽:637