Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
¸ßЧµÄJavaScriptµ¥Ôª²âÊÔ
 
À´Ô´£º²®ÀÖÔÚÏß ·¢²¼ÓÚ 2015-8-26
  2525  次浏览      28
 

¼ò½é£º ÄÜÔÚÒ»¸öä¯ÀÀÆ÷ÉÏÔËÐÐµÄ JavaScript ²¢²»Ò»¶¨ÄÜÔÚÆäËûä¯ÀÀÆ÷ÉÏÔËÐС£Èç¹ûûÓжԴúÂë½øÐе¥Ôª²âÊÔ£¬ÄÇôÔÚ¾ö¶¨Éý¼¶»òÖ§³ÖÐÂä¯ÀÀÆ÷µÄʱºò£¬¹«Ë¾¾ÍÐèÒª»¨Ç®²âÊÔ»òÖØÐ²âÊÔ Web Ó¦ÓóÌÐò¡£ÔÚ±¾ÎÄÖУ¬Á˽â JavaScript µ¥Ôª²âÊÔÈçºÎ°ïÖúÄú½µµÍ²âÊԳɱ¾£¬ÇáËÉÖ§³Ö¸ü¶àä¯ÀÀÆ÷¡£

Ò»¸öËð»µµÄ JavaScript ´úÂëʾÀý

Web Ó¦ÓóÌÐòÃæÁÙµÄÒ»¸ö×î´óÌôÕ½ÊÇÖ§³Ö²»Í¬°æ±¾µÄ Web ä¯ÀÀÆ÷¡£ÄÜÔÚ Safari ÉÏÔËÐÐµÄ JavaScript ´úÂë²»Ò»¶¨ÄÜÔÚ Windows? Internet Explorer (IE)¡¢Firefox »ò Google Chrome ÉÏÔËÐС£Õâ¸öÌôÕ½µÄ¸ùÔ´ÊdzÊÏÖ²ãÖÐµÄ JavaScript ´úÂë´ÓÒ»¿ªÊ¼¾ÍûÓнøÐвâÊÔ¡£Èç¹ûûÓжԴúÂë½øÐе¥Ôª²âÊÔ£¬ÄÇôÔÚÉý¼¶»òÖ§³ÖÐÂä¯ÀÀÆ÷ºó£¬×éÖ¯¿ÉÄÜÐèÒª»¨Ç®·´¸´²âÊÔ Web Ó¦ÓóÌÐò¡£±¾ÎĽ«Õ¹Ê¾ÈçºÎͨ¹ý¸ßЧµÄ JavaScript ´úÂëµ¥Ôª²âÊÔ½µµÍ²âÊԳɱ¾¡£

Ò»¸ö³£¼ûÓÃÀýÊǵǼ±íµ¥ JavaScript ÑéÖ¤¡£¿¼ÂÇ Çåµ¥ 1 ÖÐµÄ±íµ¥¡£

Çåµ¥ 1. µÇ¼±íµ¥

<FORM>
<table>
<tr>
<td>Username</td>
<td><input type="text" id="username"/></td>
<td><span id="usernameMessage"></span></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" id="password"/></td>
<td><span id="passwordMessage"></span></td>
</tr>
<tr>
<td><input type="button" onclick="new appnamespace.
ApplicationUtil().validateLoginForm()" value="Submit"/></td>
</tr>
</table>
</FORM>

Õâ¸ö±íµ¥ºÜ¼òµ¥£¬½ö°üº¬Óû§ÃûºÍÃÜÂë×ֶΡ£µ¥»÷Ìá½»°´Å¥Ê±£¬½«Í¨¹ý ApplicationUtil Ö´ÐÐÒ»¸öÌØ¶¨µÄ±íµ¥ÑéÖ¤¡£ÒÔÏÂÊǸºÔðÑéÖ¤ HTML ±íµ¥µÄ JavaScript ¶ÔÏó¡£Çåµ¥ 2 ÏÔʾÁË ApplicationUtil ¶ÔÏóµÄ´úÂë¡£

<strong>Çåµ¥ 2. Ëð»µµÄ ApplicationUtil ¶ÔÏó´úÂë</strong>

appnamespace = {};

appnamespace.ApplicationUtil = function() {};

appnamespace.ApplicationUtil.prototype.validateLoginForm = function(){
var error = true;
document.getElementById("usernameMessage").innerText = "";
document.getElementById("passwordMessage").innerText = "";

if (!document.getElementById("username").value) {
document.getElementById("usernameMessage").innerText =
"This field is required";
error = false;
}

if (!document.getElementById("password").value) {
document.getElementById("passwordMessage").innerText =
"This field is required";
error = false;
}

return error;
};

ÔÚÇåµ¥ 2 ÖУ¬ApplicationUtil ¶ÔÏóÌṩһ¸ö¼òµ¥ÑéÖ¤£ºÓû§ÃûºÍÃÜÂë×ֶζ¼ÒÑÌî³ä¡£Èç¹ûij¸ö×Ö¶ÎΪ¿Õ£¬¾Í»áÏÔʾһÌõ´íÎóÏûÏ¢£ºThis field is required¡£

ÉÏÃæµÄ´úÂëÄܹ»ÔÚ Internet Explorer 8 ºÍ Safari 5.1 ÉϹ¤×÷£¬µ«ÎÞ·¨ÔÚ Firefox 3.6 ÉϹ¤×÷£¬Ô­ÒòÊÇ Firefox ²»Ö§³Ö innerText ÊôÐÔ¡£Í¨³££¬£¨ÉÏÊö´úÂëºÍÆäËûÀàËÆ JavaScript ´úÂëÖеģ©Ö÷ÒªÎÊÌâÊDz»ÈÝÒ×·¢ÏÖ±àдµÄ JavaScript ´úÂëÊDz»ÊÇ¿çä¯ÀÀÆ÷¼æÈݵġ£

Õâ¸öÎÊÌâµÄÒ»¸ö½â¾ö·½°¸ÊǽøÐÐ×Ô¶¯»¯µ¥Ôª²âÊÔ£¬¼ì²é´úÂëÊDz»ÊÇ¿çä¯ÀÀÆ÷¼æÈÝ¡£

JsTestDriver

JsTestDriver library ÊÇ×îºÃµÄ JavaScript µ¥Ôª²âÊÔ¿ò¼ÜÖ®Ò»£¬ËüΪ JavaScript ´úÂëÌṩÁË¿çä¯ÀÀÆ÷²âÊÔ¡£

ͼ 1. JsTestDriver ¼Ü¹¹ ¸ßЧµÄJavaScriptµ¥Ôª²âÊÔ

²¶»ñ²»Í¬µÄä¯ÀÀÆ÷Ö®ºó£¬·þÎñÆ÷»á¸ºÔ𽫠JavaScript ²âÊÔÓÃÀýÔËÐгÌÐò´úÂë¼ÓÔØµ½ä¯ÀÀÆ÷ÖС£¿ÉÒÔͨ¹ýÃüÁîÐв¶»ñä¯ÀÀÆ÷£¬Ò²¿ÉÒÔͨ¹ý½«ä¯ÀÀÆ÷Ö¸Ïò·þÎñÆ÷ URL À´²¶»ñä¯ÀÀÆ÷¡£Ò»µ©²¶»ñµ½ä¯ÀÀÆ÷£¬¸Ãä¯ÀÀÆ÷¾Í±»³ÆÎª´ÓÊôä¯ÀÀÆ÷¡£·þÎñÆ÷¿ÉÒÔ¼ÓÔØ JavaScript ´úÂ룬ÔÚÿ¸öä¯ÀÀÆ÷ÉÏÖ´ÐвâÊÔÓÃÀý£¬È»ºó½«½á¹û·µ»Ø¸ø¿Í»§¶Ë¡£

¿Í»§¶Ë£¨ÃüÁîÐУ©ÐèÒªÒÔÏÂÁ½¸öÖ÷ÒªÏîÄ¿£º

1.JavaScript Îļþ£¬¼´Ô´ÎļþºÍ²âÊÔÎļþ

2.ÅäÖÃÎļþ£¬ÓÃÓÚ×éÖ¯Ô´ÎļþºÍ²âÊÔÎļþµÄ¼ÓÔØ

Õâ¸ö¼Ü¹¹±È½ÏÁé»î£¬ÔÊÐíµ¥¸ö·þÎñÆ÷´ÓÍøÂçÖÐµÄÆäËû»úÆ÷²¶»ñÈÎÒâÊýÁ¿µÄä¯ÀÀÆ÷¡£ÀýÈ磬Èç¹ûÄúµÄ´úÂëÔÚ Linux ÉÏÔËÐе«ÄúÏëÕë¶ÔÁíÒ»¸ö Windows »úÆ÷É쵀 Microsoft Internet Explorer ÔËÐÐÄúµÄ²âÊÔÓÃÀý£¬ÄÇôÕâ¸ö¼Ü¹¹ºÜÓÐÓá£

ҪʹÓà JsTestDriver ¿â£¬ÇëÏÈÏÂÔØ×îаæµÄ JsTestDriver 1.3.2¡£

±àдµ¥Ôª²âÊÔ´úÂë

ÏÖÔÚ¿ªÊ¼±àд JavaScript ²âÊÔÓÃÀý¡£Îª¼òµ¥Æð¼û£¬ÎÒ½«²âÊÔÒÔÏÂÓÃÀý£º

Óû§ÃûºÍÃÜÂë×ֶξùΪ¿Õ¡£

Óû§ÃûΪ¿Õ£¬ÃÜÂ벻Ϊ¿Õ¡£

Óû§Ãû²»Îª¿Õ£¬ÃÜÂëΪ¿Õ¡£

Çåµ¥ 3 ÏÔʾÁ˱íʾ TestCase ¶ÔÏóµÄ ApplicationUtilTest ¶ÔÏóµÄ²¿·Ö´úÂë¡£

Çåµ¥ 3. ApplicationUtilTest ¶ÔÏó´úÂëµÄÒ»²¿·Ö

ApplicationUtilTest = TestCase("ApplicationUtilTest");

ApplicationUtilTest.prototype.setUp = function () {
/*:DOC += <FORM action=""><table><tr><td>Username</td><td>
<input type="text" id="username"/></td><td><span id="usernameMessage">
</span></td></tr><tr><td>Password</td><td>
<input type="password" id="password"/></td><td><span id="passwordMessage"
></span></td></tr></table></FORM>*/
};

ApplicationUtilTest.prototype.testValidateLoginFormBothEmpty = function () {
var applicationUtil = new appnamespace.ApplicationUtil();


/* Simulate empty user name and password */
document.getElementById("username").value = "";
document.getElementById("password").value = "";

applicationUtil.validateLoginForm();

assertEquals("Username is not validated correctly!", "This field is required",
document.getElementById("usernameMessage").innerHTML);
assertEquals("Password is not validated correctly!", "This field is required",
document.getElementById("passwordMessage").innerHTML);
};

ApplicationUtilTest ¶ÔÏóͨ¹ý JsTestDriver TestCase ¶ÔÏó´´½¨¡£Èç¹ûÄúÊìϤ JUnit ¿ò¼Ü£¬ÄÇôÄú¿Ï¶¨ÊìϤ setUp ºÍ testXXX ·½·¨¡£setUp ·½·¨ÓÃÓÚ³õʼ»¯²âÊÔÓÃÀý¡£¶ÔÓÚ±¾Àý£¬ÎÒʹÓø÷½·¨À´ÉùÃ÷Ò»¸ö HTML Ƭ¶Î£¬¸ÃƬ¶Î½«ÓÃÓÚÆäËû²âÊÔÓÃÀý·½·¨¡£

DOC ×¢ÊÍÊÇÒ»¸ö JsTestDriver ¹ßÓÃÓ¿ÉÒÔÓÃÓÚÇáËÉÉùÃ÷Ò»¸ö HTML Ƭ¶Î¡£

ÔÚ testValidateLoginFormBothEmpty ·½·¨ÖУ¬´´½¨ÁËÒ»¸ö ApplicationUtil ¶ÔÏ󣬲¢ÔÚ²âÊÔÓÃÀý·½·¨ÖÐʹÓøöÔÏó¡£È»ºó£¬´úÂëͨ¹ý¼ìË÷Óû§ÃûºÍÃÜÂëµÄ DOM ÔªËØ²¢½«ËüÃǵÄÖµÉèÖÃΪ¿ÕÖµÀ´Ä£ÄâÊäÈë¿ÕÓû§ÃûºÍÃÜÂë¡£¿ÉÒÔµ÷Óà validateLoginForm ·½·¨À´Ö´ÐÐʵ¼Ê±íµ¥ÑéÖ¤¡£×îºó£¬½« µ÷Óà assertEquals À´È·±£ usernameMessage ºÍ passwordMessage span ÔªËØÖеÄÏûÏ¢ÊÇÕýÈ·µÄ£¬¼´£ºThis field is required¡£

ÔÚ JsTestDriver ÖУ¬¿ÉÒÔʹÓÃÒÔϹ¹¼þ£º

fail("msg")£º±íÃ÷²âÊÔÒ»¶¨»áʧ°Ü£¬ÏûÏ¢²ÎÊý½«ÏÔʾΪһÌõ´íÎóÏûÏ¢¡£

assertTrue("msg", actual)£º¶Ï¶¨Êµ¼Ê²ÎÊýÕýÈ·¡£·ñÔò£¬ÏûÏ¢²ÎÊý½«ÏÔʾΪһÌõ´íÎóÏûÏ¢¡£

assertFalse("msg", actual)£º¶Ï¶¨Êµ¼Ê²ÎÊý´íÎó¡£·ñÔò£¬ÏûÏ¢²ÎÊý½«ÏÔʾΪһÌõ´íÎóÏûÏ¢¡£

assertSame("msg", expected, actual)£º¶Ï¶¨Êµ¼Ê²ÎÊýÓëÔ¤ÆÚ²ÎÊýÏàͬ¡£·ñÔò£¬ÏûÏ¢²ÎÊý½«ÏÔʾΪһÌõ´íÎóÏûÏ¢¡£

assertNotSame("msg", expected, actual)£º¶Ï¶¨Êµ¼Ê²ÎÊýÓëÔ¤ÆÚ²ÎÊý²»Ïàͬ¡£·ñÔò£¬ÏûÏ¢²ÎÊý½«ÏÔʾΪһÌõ´íÎóÏûÏ¢¡£

assertNull("msg", actual)£º¶Ï¶¨²ÎÊýΪ¿Õ¡£·ñÔò£¬ÏûÏ¢²ÎÊý½«ÏÔʾΪһÌõ´íÎóÏûÏ¢¡£

assertNotNull("msg", actual)£º¶Ï¶¨Êµ¼Ê²ÎÊý²»Îª¿Õ¡£·ñÔò£¬ÏûÏ¢²ÎÊý½«ÏÔʾΪһÌõ´íÎóÏûÏ¢¡£

ÆäËû·½·¨µÄ´úÂë°üº¬ÆäËû²âÊÔÓÃÀý¡£Çåµ¥ 4 ÏÔʾÁ˲âÊÔÓÃÀý¶ÔÏóµÄÍêÕû´úÂë¡£

Çåµ¥ 4. ApplicationUtil ¶ÔÏóÍêÕû´úÂë

ApplicationUtilTest = TestCase("ApplicationUtilTest");

ApplicationUtilTest.prototype.setUp = function () {
/*:DOC += <FORM action=""><table><tr><td>Username</td><td>
<input type="text" id="username"/></td><td><span id="usernameMessage">
</span></td></tr><tr><td>Password</td><td>
<input type="password" id="password"/></td><td><span id="passwordMessage"
></span></td></tr></table></FORM>*/
};

ApplicationUtilTest.prototype.testValidateLoginFormBothEmpty = function () {
var applicationUtil = new appnamespace.ApplicationUtil();


/* Simulate empty user name and password */
document.getElementById("username").value = "";
document.getElementById("password").value = "";

applicationUtil.validateLoginForm();

assertEquals("Username is not validated correctly!", "This field is required",
document.getElementById("usernameMessage").innerHTML);
assertEquals("Password is not validated correctly!", "This field is required",
document.getElementById("passwordMessage").innerHTML);
};

ApplicationUtilTest.prototype.testValidateLoginFormWithEmptyUserName = function () {
var applicationUtil = new appnamespace.ApplicationUtil();


/* Simulate empty user name and password */
document.getElementById("username").value = "";
document.getElementById("password").value = "anyPassword";

applicationUtil.validateLoginForm();

assertEquals("Username is not validated correctly!",
"This field is required", document.getElementById("usernameMessage").innerHTML);
assertEquals("Password is not validated correctly!",
"", document.getElementById("passwordMessage").innerHTML);
};

ApplicationUtilTest.prototype.testValidateLoginFormWithEmptyPassword = function () {
var applicationUtil = new appnamespace.ApplicationUtil();

document.getElementById("username").value = "anyUserName";
document.getElementById("password").value = "";

applicationUtil.validateLoginForm();

assertEquals("Username is not validated correctly!",
"", document.getElementById("usernameMessage").innerHTML);
assertEquals("Password is not validated correctly!",
"This field is required", document.getElementById("passwordMessage").
innerHTML);
};

<strong>ÅäÖÃÓÃÓÚ²âÊԵIJ»Í¬ä¯ÀÀÆ÷</strong>

²âÊÔ JavaScript ´úÂëµÄÒ»¸öÍÆ¼öʵ¼ùÊǽ« JavaScript Ô´´úÂëºÍ²âÊÔ´úÂë·ÅÖÃÔÚ²»Í¬µÄÎļþ¼ÐÖС£¶ÔÓÚ Í¼ 2 ÖеÄʾÀý£¬ÎÒ½« JavaScript Ô´Îļþ¼ÐÃüÃûΪ ¡°js-src¡±£¬½« JavaScript ²âÊÔÎļþ¼ÐÃüÃûΪ ¡°js-test¡±£¬ËüÃǶ¼Î»ÓÚ ¡°js¡± ¸¸Îļþ¼ÐÏ¡£

ͼ 2. JavaScript ²âÊÔÎļþ¼Ð½á¹¹

×éÖ¯ºÃÔ´ºÍ²âÊÔÎļþ¼Ðºó£¬±ØÐëÌṩÅäÖÃÎļþ¡£Ä¬ÈÏÇé¿öÏ£¬JsTestDriver ÔËÐгÌÐò»áѰÕÒÃûΪ jsTestDriver.conf µÄÅäÖÃÎļþ¡£Äú¿ÉÒÔ´ÓÃüÁîÐиü¸ÄÅäÖÃÎļþÃû³Æ¡£Çåµ¥ 5 ÏÔʾÁË JsTestDriver ÅäÖÃÎļþµÄÄÚÈÝ¡£

Çåµ¥ 5. JsTestDriver ÅäÖÃÎļþÄÚÈÝ

server: http:
//localhost:9876

load:
- js-src/*.js
- js-test/*.js

ÅäÖÃÎļþ²ÉÓà YAML ¸ñʽ¡£server Ö¸ÁîÖ¸¶¨²âÊÔ·þÎñÆ÷µÄµØÖ·£¬load Ö¸ÁîÖ¸³öÁ˽«ÄÄЩ JavaScript Îļþ¼ÓÔØµ½ä¯ÀÀÆ÷ÖÐÒÔ¼°¼ÓÔØËüÃǵÄ˳Ðò¡£

ÏÖÔÚ£¬ÎÒÃǽ«ÔÚ IE¡¢Firefox ºÍ Safari ä¯ÀÀÆ÷ÉÏÔËÐвâÊÔÓÃÀýÀà¡£

ÒªÔËÐвâÊÔÓÃÀýÀ࣬ÐèÒªÆô¶¯·þÎñÆ÷¡£Äú¿ÉÒÔʹÓÃÒÔÏÂÃüÁîÐÐÆô¶¯ JsTestDriver ·þÎñÆ÷£º

java -jar JsTestDriver-1.3.2.jar --port 9876 --browser "[Firefox Path]",
"[IE Path]","[Safari Path]"

ʹÓÃÕâ¸öÃüÁîÐУ¬·þÎñÆ÷½«ÒÔ Port 9876 Æô¶¯£¬²¶»ñÄúµÄ»úÆ÷É쵀 Firefox¡¢IE ºÍ Safari ä¯ÀÀÆ÷¡£ Æô¶¯²¢²¶»ñä¯ÀÀÆ÷ºó£¬¿ÉÒÔͨ¹ýÒÔÏÂÃüÁîÐÐÔËÐвâÊÔÓÃÀýÀࣺ

java -jar JsTestDriver-1.3.2.jar --tests all

ÔËÐÐÃüÁîºó£¬Äú½«¿´µ½µÚÒ»ÂÖ½á¹û£¬Èç Çåµ¥ 6Ëùʾ¡£

Çåµ¥ 6. µÚÒ»ÂÖ½á¹û

Total 9 tests (Passed: 6; Fails: 3; Errors: 0) (16.00 ms)
Firefox 3.6.18 Windows: Run 3 tests (Passed: 0; Fails: 3; Errors 0) (8.00 ms)
ApplicationUtilTest.testValidateLoginFormBothEmpty failed (3.00 ms):
AssertError: Username is not validated correctly! expected "This field
is required" but was "" Error("Username is not validated correctly!
expected \"This field is required\" but was \"\"")@:0()@http:
//localhost
:9876/test/js-test/TestApplicationUtil.js:16

ApplicationUtilTest.testValidateLoginFormWithEmptyUserName failed (3.00 ms):
AssertError: Username is not validated correctly! expected "This field is
required" but was "" Error("Username is not validated correctly! expected
\"This field is required\" but was \"\"")@:0()@http:
//localhost:9876/test
/js-test/TestApplicationUtil.js:29

ApplicationUtilTest.testValidateLoginFormWithEmptyPassword failed (2.00 ms):
AssertError: Password is not validated correctly! expected "This field is
required" but was "" Error("Password is not validated correctly! expected
\"This field is required\" but was \"\"")@:0()@http:
//localhost:9876/test/
js-test/TestApplicationUtil.js:42

Safari 534.50 Windows: Run 3 tests (Passed: 3; Fails: 0; Errors 0) (2.00 ms)
Microsoft Internet Explorer 8.0 Windows: Run 3 tests (Passed: 3; Fails: 0;
Errors 0) (16.00 ms)
Tests failed: Tests failed. See log for details.

×¢Ò⣬ÔÚÇåµ¥ 6 ÖУ¬Ö÷ÒªÎÊÌâ³öÔÚ Firefox ÉÏ¡£²âÊÔÔÚ Internet Explorer ºÍ Safari ÉϾù¿É˳ÀûÔËÐС£ »ØÒ³Ê× ÐÞ¸´ JavaScript ´úÂë²¢ÖØÐÂÔËÐвâÊÔÓÃÀý ÎÒÃÇÀ´ÐÞ¸´Ëð»µµÄ JavaScript ´úÂë¡£ÎÒÃǽ«Ê¹Óà innerHTML Ìæ´ú innerText¡£Çåµ¥ 7 ÏÔʾÁËÐÞ¸´ºóµÄ ApplicationUtil¶ÔÏó´úÂë¡£

Çåµ¥ 7. ÐÞ¸´ºóµÄ ApplicationUtil ¶ÔÏó´úÂë

appnamespace = {};

appnamespace.ApplicationUtil = function() {};

appnamespace.ApplicationUtil.prototype.validateLoginForm = function(){
var error = true;
document.getElementById("usernameMessage").innerHTML = "";
document.getElementById("passwordMessage").innerHTML = "";

if (!document.getElementById("username").value) {
document.getElementById("usernameMessage").innerHTML =
"This field is required";
error = false;
}

if (!document.getElementById("password").value) {
document.getElementById("passwordMessage").innerHTML =
"This field is required";
error = false;
}

return error;
};

ʹÓà --test all ÃüÁîÐвÎÊýÖØÐÂÔËÐвâÊÔÓÃÀý¶ÔÏó¡£Çåµ¥ 8ÏÔʾÁ˵ڶþÂÖÔËÐнá¹û¡£

Çåµ¥ 8. µÚ¶þÂÖÔËÐнá¹û

Total 9 tests (Passed: 9; Fails: 0; Errors: 0) (9.00 ms)
Firefox 3.6.18 Windows: Run 3 tests (Passed: 3; Fails: 0; Errors 0) (9.00 ms)
Safari 534.50 Windows: Run 3 tests (Passed: 3; Fails: 0; Errors 0) (5.00 ms)
Microsoft Internet Explorer 8.0 Windows: Run 3 tests (Passed: 3; Fails: 0; Errors 0)
(0.00 ms)

ÈçÇåµ¥ 8 Ëùʾ£¬JavaScript ´úÂëÏÖÔÚÔÚ IE¡¢Firefox ºÍ Safari É϶¼ÄÜÕý³£ÔËÐС£

½áÊøÓï

ÔÚ±¾ÎÄÖУ¬ÄúÁ˽âÁËÈçºÎʹÓÃÒ»¸ö×îÇ¿´óµÄ JavaScript µ¥Ôª²âÊÔ¹¤¾ß (JsTestDriver) ÔÚ²»Í¬µÄä¯ÀÀÆ÷ÉϲâÊÔ JavaScriptÓ¦ÓóÌÐò´úÂë¡£»¹Á˽âÁËʲôÊÇ JsTestDriver£¬ÈçºÎÅäÖÃËü£¬ÒÔ¼°ÈçºÎÔÚ Web Ó¦ÓóÌÐòÖÐʹÓÃËüÀ´È·±£Ó¦ÓóÌÐòµÄ JavaScript´úÂëµÄÖÊÁ¿ºÍ¿É¿¿ÐÔ¡£

   
2525 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

΢·þÎñ²âÊÔÖ®µ¥Ôª²âÊÔ
һƪͼÎÄ´øÄãÁ˽â°×ºÐ²âÊÔÓÃÀýÉè¼Æ·½·¨
È«ÃæµÄÖÊÁ¿±£ÕÏÌåϵ֮»Ø¹é²âÊÔ²ßÂÔ
È˹¤ÖÇÄÜ×Ô¶¯»¯²âÊÔ̽Ë÷
Ïà¹ØÎĵµ

×Ô¶¯»¯½Ó¿Ú²âÊÔʵ¼ù֮·
jenkins³ÖÐø¼¯³É²âÊÔ
ÐÔÄܲâÊÔÕï¶Ï·ÖÎöÓëÓÅ»¯
ÐÔÄܲâÊÔʵÀý
Ïà¹Ø¿Î³Ì

³ÖÐø¼¯³É²âÊÔ×î¼Ñʵ¼ù
×Ô¶¯»¯²âÊÔÌåϵ½¨ÉèÓë×î¼Ñʵ¼ù
²âÊԼܹ¹µÄ¹¹½¨ÓëÓ¦ÓÃʵ¼ù
DevOpsʱ´úµÄ²âÊÔ¼¼ÊõÓë×î¼Ñʵ¼ù
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

LoadRunnerÐÔÄܲâÊÔ»ù´¡
Èí¼þ²âÊÔ½á¹û·ÖÎöºÍÖÊÁ¿±¨¸æ
ÃæÏò¶ÔÏóÈí¼þ²âÊÔ¼¼ÊõÑо¿
Éè¼Æ²âÊÔÓÃÀýµÄËÄÌõÔ­Ôò
¹¦ÄܲâÊÔÖйÊÕÏÄ£Ð͵Ľ¨Á¢
ÐÔÄܲâÊÔ×ÛÊö

ÐÔÄܲâÊÔ·½·¨Óë¼¼Êõ
²âÊÔ¹ý³ÌÓëÍŶӹÜÀí
LoadRunner½øÐÐÐÔÄܲâÊÔ
WEBÓ¦ÓõÄÈí¼þ²âÊÔ
ÊÖ»úÈí¼þ²âÊÔ
°×ºÐ²âÊÔ·½·¨Óë¼¼Êõ

ij²©²ÊÐÐÒµ Êý¾Ý¿â×Ô¶¯»¯²âÊÔ
IT·þÎñÉÌ Web°²È«²âÊÔ
IT·þÎñÉÌ ×Ô¶¯»¯²âÊÔ¿ò¼Ü
º£º½¹É·Ý µ¥Ôª²âÊÔ¡¢Öع¹
²âÊÔÐèÇó·ÖÎöÓë²âÊÔÓÃÀý·ÖÎö
»¥ÁªÍøweb²âÊÔ·½·¨Óëʵ¼ù
»ùÓÚSeleniumµÄWeb×Ô¶¯»¯²âÊÔ