1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問(wèn)題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
      java代碼的測(cè)試用例 java代碼的測(cè)試用例有哪些

      selenium 怎么使用java編寫測(cè)試用例

      control-1.0.1-dist.zip。 解壓。

      公司主營(yíng)業(yè)務(wù):成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)推出洛川免費(fèi)做網(wǎng)站回饋大家。

      2. 用命令行來(lái)到解壓的文件夾下: \selenium-remote-control-0.9.2\selenium-server-0.9.2

      3. 運(yùn)行: java -jar selenium-server.jar 啟動(dòng)selenium server (務(wù)必啟動(dòng)!!)

      4. 在Eclipse創(chuàng)建一個(gè)項(xiàng)目,在項(xiàng)目的build path里面加上junit.jar和selenium-java-client-driver.jar(這個(gè)在剛解壓的包里面)

      5. 先利用firefox selenium IDE來(lái)錄制檢測(cè)頁(yè)面檢測(cè)功能用的junit代碼。

      6. 在項(xiàng)目里面新建一個(gè)class(junit用例):將上面的junit代碼帖于此。

      7. 根據(jù)eclipse的錯(cuò)誤提示來(lái)增加相應(yīng)要import的類

      8. 在進(jìn)行測(cè)試前,最好將對(duì)應(yīng)瀏覽器關(guān)閉,否則容易出錯(cuò)。

      9. 然后在Eclipse里運(yùn)行 “Run As - unit Test”即可看到自動(dòng)化的范例.

      10.運(yùn)行期間,會(huì)彈出ie窗口,自動(dòng)進(jìn) 行操作測(cè)試。檢測(cè)完后,若junit顯示為“綠色”則表示成功。

      下面粘貼一下那個(gè)測(cè)試小程序

      import com.thoughtworks.selenium.SeleneseTestCase;public class Untitled extends SeleneseTestCase {

      public void setUp() throws Exception {

      //由于selenium 對(duì)*firefox不支持3.6版本的.只能支持3.0版本.所以,最好將selenium IDE錄制的代碼中的firefox改為ie進(jìn)行測(cè)試。

      //setUp("", "*firefox");

      setUp("", "*iexplore");

      }

      public void testUntitled() throws Exception {

      selenium.open("/");

      selenium.type("q", "baidu");

      selenium.click("btnG");

      selenium.waitForPageToLoad("30000");

      selenium.click("link= 百度一下,你就知道");

      //添加斷言進(jìn)行測(cè)試:

      // assertTrue(selenium.isTextPresent("OpenQA: Selenium")); //測(cè)試出錯(cuò),程序退出

      assertTrue(selenium.isTextPresent("百度一 下,你就知道")); //測(cè)試成功,程序繼續(xù)

      }

      //用于讓測(cè)試的頁(yè)面關(guān)閉.若不寫,則頁(yè)面不會(huì)關(guān)閉

      public void tearDown() throws Exception {

      selenium.stop();

      }

      }

      (7)

      7.1

      selenium 常用操作有:open,type,click,select,selectFrame:

      1. open("/")打開的是當(dāng)前的網(wǎng)址;selenium.open("/dmmc/"):在當(dāng)前的網(wǎng)址后面追回/dmmc/;

      2. type,click,select,selectFrame各方法使用時(shí),對(duì)元素的定位都可采用元素ID 或 xpath方式;

      3. type,click,select,selectFrame去選擇元素時(shí),可以直接用元素的ID作為標(biāo) 記.

      4. 如:selenium.type("loginName", "coship")采用xpath方式時(shí),則格式如://元素名1[元素屬性名1='元素屬性值1']/元素名2[元素屬性名2='元素 屬 性值2']/....

      如:selenium.type("http://input[@name='admin.password']", "coship")7.2

      常用命令用法:

      1)

      type的兩種不同定位方式:

      selenium.type("loginName", "coship");

      //以下語(yǔ)句的"xpath="可以省略

      selenium.type("xpath=//input[@name='admin.password']", "coship");

      2)

      click的兩種不同定位方式:

      selenium.click("imageField"); 即是通過(guò)ID定位:input type="submit" value=" " id="imageField"

      selenium.click("http://input[@type='submit']"); (通過(guò)屬性input-type)

      selenium.click("http://input[@value='確定']"); (通過(guò)屬性input-value)

      selenium.click("http://input[@name='devTypeIds' and @value='000002']") (還可通過(guò)屬性@id)

      3)

      點(diǎn)擊鏈接方式:

      對(duì)于動(dòng)態(tài)內(nèi)容的獲取,盡量避 免采用第一種方式(若內(nèi)容變了,則出錯(cuò)),而采用第二種方式.

      實(shí)現(xiàn)方式一:

      點(diǎn)擊鏈接:a href=..801830456628/a

      selenium.click("link=801830456628");

      實(shí)現(xiàn)方式二:

      獲取id=adminList的table中的tbody下的第三行,第二列中的a href元素。

      selenium.click("http://table[@id='adminsList']/tbody/tr[3]/td[2]/a");

      4)

      選 擇下拉框:

      實(shí)現(xiàn)方式一:

      selenium.select("status", "label=啟用");

      即 是:select id="status"option value="1"啟用/option/select

      實(shí)現(xiàn)方式二:

      selenium.select("xpath=//SELECT[@id='status']", "index=1");

      具體應(yīng)用,請(qǐng)見以下實(shí)例。7.3

      實(shí)例:

      用于檢測(cè)abmc系統(tǒng)各模塊功能是否正常。

      方式:

      用selenium IDE錄制abmc系統(tǒng)各模塊功能操作.(前提是:這些操作,這些功能都是正確成功),以后當(dāng)abmc系統(tǒng)升級(jí),更改后,即可運(yùn)行此腳本,來(lái)檢查升級(jí)是否 影響系統(tǒng)功能實(shí)現(xiàn)。若系統(tǒng)更改有錯(cuò),則selenium中運(yùn)行中某一步驟時(shí),會(huì)出錯(cuò)退出。

      如:

      系統(tǒng)更改后導(dǎo)致某一頁(yè)面打不開,這時(shí) selenium運(yùn)行到此頁(yè)面時(shí),就不能繼續(xù)往下操作,就會(huì)出錯(cuò)而退出。注意:

      1.同時(shí),也可在測(cè)試代碼中添加一些斷言判斷來(lái)判斷成功,失敗。

      2.

      對(duì)于firefox selenium IDE錄制的腳本要進(jìn)行適當(dāng)?shù)男薷?盡量讓selenium用元素ID來(lái)定位操作元素,而不通過(guò)元素名(元素名易變化)。

      3.

      若selenium RC檢測(cè)代碼出錯(cuò),也不一定是系統(tǒng)升級(jí)有問(wèn)題,可能是系統(tǒng)升級(jí)后,有些數(shù)據(jù)刪除,修改了,selenium RC在回放操作時(shí),找到原來(lái)錄制時(shí)對(duì)應(yīng)的數(shù)據(jù)而出錯(cuò)。具體代碼如下:

      //對(duì)于click,select,selectFrame去選擇元素時(shí),可以直接用元素的ID作為標(biāo)記.// 如:selenium.click("元素ID");public class AbmcSeleniumTest extends SeleneseTestCase {

      public void setUp() throws Exception {

      setUp("", "*iexplore");

      }

      public void testUntitled() throws Exception {

      selenium.open("/abmc/");

      //type的兩種不同定位方式

      selenium.type("loginName", "coship");

      //以下語(yǔ)句 的"xpath="可以省略

      selenium.type("xpath=//input[@name='admin.password']", "coship");

      // selenium.click("imageField"); 即是通過(guò)ID 定位:input type="submit" value=" " id="imageField"

      selenium.click("http://input[@type='submit']");

      //等待一個(gè)新的頁(yè)面加載。 以毫秒為單位,超過(guò)后該命令將返回錯(cuò)誤。

      selenium.waitForPageToLoad("30000");

      //即選擇frame src="device/index.jsp" id="mainFrame"

      selenium.selectFrame("mainFrame");

      //對(duì)于動(dòng)態(tài)內(nèi)容的獲取,盡量避免采用第一種方式 (若內(nèi)容變了,則出錯(cuò)),而采用第二種方式

      //點(diǎn)擊鏈接:a href=..801830456628/a

      // selenium.click("link=801830456628");

      //實(shí)現(xiàn)方式二:獲取id=adminList的table中的tbody下的第三行,第二列中的a href元素。

      selenium.click("http://table[@id='adminsList']/tbody/tr[3]/td[2]/a");

      selenium.waitForPageToLoad("30000");

      selenium.click("http://input[@value=' 返回']");

      selenium.waitForPageToLoad("30000");

      //因?yàn)橛卸鄠€(gè)“查看應(yīng)用列表”,若不指定,默認(rèn)獲取第一個(gè)

      selenium.click("link=查看應(yīng)用列表");

      selenium.click("btn_dsure");

      // 方式一:

      //selenium.click(" //a[@onclick=\"showPage('應(yīng)用列表','deviceAppList.action?device.swType=2device.deviceId=0000257device.deviceName=801830456628device.specName=DevTyp',750,400)\"]");

      //方式二:

      selenium.click("http://table[@id='adminsList']/tbody/tr[3]/td[5]/span[1]/a");

      selenium.click("btn_dsure");

      selenium.selectFrame("relative=up");

      selenium.selectFrame("leftFrame");

      selenium.click("link=應(yīng)用文件管理");

      selenium.click("link=應(yīng)用文件信息");

      selenium.selectFrame("relative=up");

      selenium.selectFrame("mainFrame");

      selenium.click("http://a[@onclick=\"showPage('匹配終端類型','appTypeList.action?application.appId=01application.appName=maliao',750,400)\"]");

      selenium.click("btn_dsure");

      selenium.click("http://table[@id='adminsList']/tbody/tr[7]/td[8]/span[2]/a");

      selenium.waitForPageToLoad("30000");

      selenium.click("http://input[@name='devTypeIds' and @value='000002']");

      selenium.click("http://input[@value='確定']");

      selenium.waitForPageToLoad("30000");

      selenium.click("http://a[@onclick=\"showPage('匹配終端類型','appTypeList.action?application.appId=01application.appName=maliao',750,400)\"]");

      selenium.click("btn_dsure");

      selenium.selectFrame("relative=up");

      selenium.selectFrame("leftFrame");

      selenium.click("link=終端應(yīng)用管理");

      selenium.click("link=終端應(yīng)用許可");

      selenium.selectFrame("relative=up");

      selenium.selectFrame("mainFrame");

      // selenium.select("status", "label=啟用"); 即是:select id="status"option value="1"啟 用/option/select

      selenium.select("xpath=//SELECT[@id='status']", "index=1");

      selenium.click("http://input[@type='image']");

      selenium.waitForPageToLoad("30000");

      selenium.click("http://input[@type='image']");

      selenium.waitForPageToLoad("30000");

      selenium.selectFrame("relative=up");

      //即 選擇frame src="device/index.jsp" id="mainFrame"

      selenium.selectFrame("topFrame");

      selenium.click("link=注銷");

      //若要測(cè)試其 它的網(wǎng)頁(yè),可以繼續(xù)selenium.open(..)

      }

      }

      #web測(cè)試技術(shù)

      如何寫測(cè)試用例 java

      測(cè)試用例設(shè)計(jì)和執(zhí)行是測(cè)試工作的核心,也是工作量最大的任務(wù)之一。

      測(cè)試用例(Test Case)目前沒(méi)有經(jīng)典的定義。比較通常的說(shuō)法是:指對(duì)一項(xiàng)特定的軟件產(chǎn)品進(jìn)行測(cè)試任務(wù)的描述,體現(xiàn)測(cè)試方案、方法、技術(shù)和策略。內(nèi)容包括測(cè)試目標(biāo)、測(cè)試環(huán)境、輸入數(shù)據(jù)、測(cè)試步驟、預(yù)期結(jié)果、測(cè)試腳本等,并形成文檔。

      測(cè)試用例編寫準(zhǔn)備

      1

      從配置管理員處申請(qǐng)軟件配置:《需求規(guī)格說(shuō)明書》和《設(shè)計(jì)說(shuō)明書》;

      2

      根據(jù)需求規(guī)格說(shuō)明書和設(shè)計(jì)說(shuō)明書,詳細(xì)理解用戶的真正需求,并且對(duì)軟件所實(shí)現(xiàn)的功能已經(jīng)準(zhǔn)確理解,然后著手制訂測(cè)試用例。

      測(cè)試用例制定的原則

      1測(cè)試用例要包括欲測(cè)試的功能、應(yīng)輸入的數(shù)據(jù)和預(yù)期的輸出結(jié)果。

      2測(cè)試數(shù)據(jù)應(yīng)該選用少量、高效的測(cè)試數(shù)據(jù)進(jìn)行盡可能完備的測(cè)試。

      用例覆蓋

      1正確性測(cè)試:輸入用戶實(shí)際數(shù)據(jù)以驗(yàn)證系統(tǒng)是滿足需求規(guī)格說(shuō)明書的要求;測(cè)試用 例中的測(cè)試點(diǎn)應(yīng)首先保證要至少覆蓋需求規(guī)格說(shuō)明書中的各項(xiàng)功能,并且正常。

      2容錯(cuò)性(健壯性)測(cè)試:程序能夠接收正確數(shù)據(jù)輸入并且產(chǎn)生正確(預(yù)期)的輸出, 輸入非法數(shù)據(jù)(非法類型、不符合要求的數(shù)據(jù)、溢出數(shù)據(jù)等),程序應(yīng)能給出提示 并進(jìn)行相應(yīng)處理。把自己想象成一名對(duì)產(chǎn)品操作一點(diǎn)也不懂的客戶,在進(jìn)行任意操作。

      3完整(安全)性測(cè)試:對(duì)未經(jīng)授權(quán)的人使用軟件系統(tǒng)或數(shù)據(jù)的企圖,系統(tǒng)能夠控制的程度,程序的數(shù)據(jù)處理能夠保持外部信息(數(shù)據(jù)庫(kù)或文件)的完整。

      4接口間測(cè)試:測(cè)試各個(gè)模塊相互間的協(xié)調(diào)和通信情況,數(shù)據(jù)輸入輸出的一致性和正確性。

      5壓力測(cè)試:輸入10條記錄運(yùn)行各個(gè)功能,輸入30條記錄運(yùn)行,輸入50條記錄進(jìn)行測(cè)試。

      6性能:完成預(yù)定的功能,系統(tǒng)的運(yùn)行時(shí)間(主要是針對(duì)數(shù)據(jù)庫(kù)而言)。

      7可理解(操作)性:理解和使用該系統(tǒng)的難易程度(界面友好性)。

      8可移植性:在不同操作系統(tǒng)及硬件配置情況下的運(yùn)行性。

      測(cè)試方法

      1邊界值分析法:確定邊界情況(剛好等于、稍小于和稍大于和剛剛大于等價(jià)類邊界值),針對(duì)我們的系統(tǒng)在測(cè)試過(guò)程中主要輸入一些合法數(shù)據(jù)/非法數(shù)據(jù),主要在邊界值附近選取。

      2等價(jià)劃分:將所有可能的輸入數(shù)據(jù)(有效的和無(wú)效的)劃分成若干個(gè)等價(jià)類。

      3錯(cuò)誤推測(cè):主要是根據(jù)測(cè)試經(jīng)驗(yàn)和直覺,參照以往的軟件系統(tǒng)出現(xiàn)錯(cuò)誤之處。

      測(cè)試用例的填寫

      1一個(gè)軟件系統(tǒng)或項(xiàng)目共用一套完整的測(cè)試用例,整個(gè)系統(tǒng)測(cè)試過(guò)程測(cè)試完畢,將實(shí)際測(cè)試結(jié)果填寫到測(cè)試用例中,操作步驟應(yīng)盡可能的詳細(xì),測(cè)試結(jié)論是指最終的測(cè)試結(jié)果(結(jié)論為:通過(guò)或不通過(guò))。

      java 怎么寫junit測(cè)試用例

      java中Junit應(yīng)用介紹:assertexp1;//exp1為boolean類型的值assertexp1:message;//message為如果exp1不是true的時(shí)候,要提示的錯(cuò)誤消息斷言一般作用:代碼運(yùn)行前寫斷言判斷必須滿足的條件;代碼運(yùn)行后判斷必須符合的標(biāo)準(zhǔn);確定代碼運(yùn)行過(guò)程中有無(wú)改變某些不應(yīng)該變的東西2.junit中的Assert類提供了很多方法,替代斷言,參照api:assertEquals、assertFalse、assertTrue、assertNotNull、assertNull、assertSame、fail3.注解@interface用來(lái)定義注解@Retention用來(lái)聲明注解的保留策略,有CLASS(注解保存在class文件中)、RUNTIME(運(yùn)行時(shí)可用)和SOURCE(僅在源代碼中)這三種@Target用來(lái)聲明注解可以被添加在哪些類型的元素上:注解、類、方法、方法參數(shù)、構(gòu)造、字段、方法中的普通變量定義一個(gè)能在方法上使用的注解:@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.METHOD})public@interfaceKennethTest{}寫一個(gè)測(cè)試類publicclassTest{@KennethTestpublicvoidtest1(){System.out.println("test1");}publicvoidtest2(){System.out.println("test2");}@KennethTestpublicvoidtest3(){System.out.println("test3");}}執(zhí)行一個(gè)類中所有標(biāo)記KennethTest的方法publicclassMain{publicstaticvoidmain(String[]args)throwsException{//反射ClassclassObj=Test.class;//獲取Test的類對(duì)象Objectobj=classObj.newInstance();//調(diào)用無(wú)參數(shù)構(gòu)造,新建一個(gè)Test的對(duì)象Method[]methods=classObj.getMethods();//獲取Test類中所有public方法for(Methodmethod:methods){if(method.getAnnotation(KennethTest.class)!=null){//看這個(gè)方法是否有KennethTest注解method.invoke(obj);//如果這個(gè)方法有KennethTest注解,那么這個(gè)方法被調(diào)用執(zhí)行}}}}4.junit中的注解@Test@Test(expected=IndexOutOfBoundsException.class)測(cè)試方法拋出這個(gè)異常就能通過(guò)測(cè)試@Test(timeout=10)測(cè)試方法不能超過(guò)10毫秒@Ignore忽略測(cè)試@Before每個(gè)測(cè)試方法之前執(zhí)行@After每個(gè)測(cè)試方法之后執(zhí)行@BeforeClass在加載類時(shí)執(zhí)行@AfterClass在所有測(cè)試方法執(zhí)行結(jié)束,如果有after的話,所有after也執(zhí)行結(jié)束后執(zhí)行5.通常寫測(cè)試代碼的規(guī)則:1)產(chǎn)品源代碼和測(cè)試源代碼要分開,包名類名一致例如org.ken.PersonDao對(duì)應(yīng)測(cè)試代碼可以為test.org.ken.PersonDaoTest2)一個(gè)有功能類要寫至少一個(gè)測(cè)試類3)一個(gè)方法代表一個(gè)用例用例之間要保持獨(dú)立(最好不要互相調(diào)用)


      新聞名稱:java代碼的測(cè)試用例 java代碼的測(cè)試用例有哪些
      文章出自:http://ef60e0e.cn/article/ddjgjgi.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        方山县| 德昌县| 平原县| 杭锦后旗| 息烽县| 洛隆县| 松原市| 汽车| 武邑县| 水富县| 封开县| 平谷区| 博乐市| 上犹县| 灯塔市| 海林市| 郧西县| 全州县| 澎湖县| 繁峙县| 鞍山市| 黑河市| 鄂尔多斯市| 金川县| 苗栗市| 南宁市| 博兴县| 鹤壁市| 京山县| 克山县| 扶绥县| 凤冈县| 浪卡子县| 昆山市| 苏州市| 拜泉县| 杭锦后旗| 澳门| 嫩江县| 平南县| 兴化市|