2017-09-20 54 views
4

我在查看this paper,他們使用HTMLUnit來「測量可用於定義新字符串的JavaScript函數的調用次數(如子字符串和fromCharCode)以及字符串使用的次數(如寫操作和eval調用)。「如何測量定義新字符串的JavaScript函數的數量

我是HTMLUnit的新手,我似乎無法弄清楚如何直接看到網站正在使用的功能,並計算哪些是子串,eval等?這究竟是如何完成的?

+0

嗨,從它的外觀來看,他們使用HTMLUnit作爲開發jsand的起點。 HtmlUnit爲您提供掛鉤功能,然後您可以編寫處理程序以收集它們饋送到ML中的度量標準 –

+0

特別是您可以看到http://htmlunit.sourceforge.net/apidocs/支持的所有* \ * Handlers *在構建測試時從那裏出發 –

+0

@Ahmed Masud我很困惑,我將如何使用它們提供的處理程序來檢測Substring調用等。 –

回答

1

最簡單的方法是monkeypatch所有的本地電話。例如:

const original = String.fromCharCode; 
 
String.fromCharCode = function(...args) { 
 
    console.log('creating new string'); 
 
    return original.apply(this, args); 
 
} 
 
console.log(String.fromCharCode(65, 66, 67));

這可以讓你保持原有功能的同時,還允許您跟蹤這是怎麼回事的。雖然更復雜,但可以應用(無雙關語)eval和任何其他本地電話。
如果您還想監視任何DOM更改,則可以使用MutationObservers

+0

它可能是最簡單的方法,但肯定不是最簡單的方法,它沒有覆蓋範圍。 –

+0

有沒有其他的解決方案,@AhmedMasud? –

+0

@Nit,我仍然對我們如何在這裏使用htmlunit感到困惑。對不起,我還是新來的api。謝謝。 –

相關問題