欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

casperjs進(jìn)行web功能自動(dòng)化測(cè)試demo

系統(tǒng) 1681 0
    通過(guò)一周多的學(xué)習(xí)和總結(jié),終于掌握了casperjs用于自動(dòng)化的方法,填平了大大小小的各種坑。
  
    casperjs是一個(gè)新興的測(cè)試框架,網(wǎng)上資料很少,基本上靠翻譯英文資料。
  
    貢獻(xiàn)出來(lái),供大家參考:
  
    ?
  
      //page.js,存放頁(yè)面元素

//c表示通過(guò)css選擇元素,x表示通過(guò)xpath選擇元素

var baseurl="
      
        http://www.cnblogs.com/reach296/
      
      ";

var base={

	//首頁(yè)

	url:baseurl,

	c:{

		登錄表單:'form#login',

		登錄按鈕:'.btn'

	}

};

var index={

	//登錄后成功后跳轉(zhuǎn)頁(yè)

	url:baseurl+"/seven/index"

};

var sidebar={

	//左邊框

	url:baseurl+"/seven/sidebar.jsp",

	x:{

		應(yīng)用庫(kù):"http://span[contains(text(),應(yīng)用庫(kù))]",

		應(yīng)用分類:"http://ul[@class='submenu']/li/a[1]"

	}

};

var category_list={

	//應(yīng)用分類page

	url:baseurl+"/seven/app/category-list",

	c:{

		名稱:'td.sorting_1'

	},

	x:{

		表格:'//*[@id="sample-table-2"]/tbody/tr',

		名稱:'//*[@id="sample-table-2"]/tbody/tr/td[1]',

		海報(bào):'//*[@id="sample-table-2"]/tbody/tr/td[2]',

		編輯:'//*[@id="sample-table-2"]/tbody/tr/td[3]'

	}

}



//common.js,存放全局變量和方法



var path={

	capture:'cms/capture/',

	lib:'cms/lib/'

};

var cap={

	clipRect:{top: 0,left: 0,width: 1024,height: 768},

//	clipRect:{width: 1024,height:768},

    imgOptions:{format: 'jpg',quality:100}

};

var account={'loginName':'reachwang','passwd':'test12345'};



function get_menu_links(){

	//獲取一級(jí)模塊

	var links = window.frames[0].document.getElementsByTagName("frame")[0].contentDocument.getElementsByClassName("menu-text");	

    return Array.prototype.map.call(links, function(e) {

        return e.innerText;

    });

};



function get_submenu_links(){

	//獲取二級(jí)模塊

	var links = window.frames[0].document.getElementsByTagName("frame")[0].contentDocument.querySelectorAll('.submenu a');	

    return Array.prototype.map.call(links, function(e) {

        return (e.innerText).replace(/(^\s*)|(\s*$)/g, "");

    });

};



//應(yīng)用分類測(cè)試用例,檢查應(yīng)用分類頁(yè)面是否正常展示,分類數(shù)據(jù)是否存在

casper.test.begin('應(yīng)用分類測(cè)試用例',function suite(test) {

	casper.options.verbose = true;

	casper.options.logLevel = "debug";

	casper.options.viewportSize={width: 1024, height: 768};

	casper.options.waitTimeout=20000;

//	casper.options.clientScripts=[

//		path.lib+'common.js'

//	];

	casper.test.comment('檢查應(yīng)用分類頁(yè)面是否正常展示,分類數(shù)據(jù)是否存在');

    casper.start(base.url, function() {

  		this.echo("1、打開(kāi)登錄頁(yè)面");

  		test.assertHttpStatus(200,"檢查http請(qǐng)求狀態(tài)");

		

    });

   

    casper.waitForSelector(base.c.登錄按鈕, function() {	

    	this.echo("2、登錄頁(yè)面截圖");

    	this.capture(path.capture+"登錄頁(yè)面.jpg",cap.clipRect, cap.imgOptions);	

	});



    casper.then(function() {

    	this.echo("3、登錄頁(yè)面檢查");	

    	test.assertTitle("TCL CMS", "標(biāo)題正確");

        test.assertExists(base.c.登錄表單, "帳號(hào)登錄表單存在");

    	this.echo("4、輸入帳號(hào)和密碼");

    	this.fill(base.c.登錄表單, account, true);

		this.echo("5、點(diǎn)擊登錄按鈕");

		test.assertExists(base.c.登錄按鈕, "登錄按鈕存在");

		this.mouse.click(base.c.登錄按鈕);

	});

	casper.waitForUrl(index.url,function(){

		test.assertHttpStatus(200,"跳轉(zhuǎn)到登錄完成頁(yè)");

		this.capture(path.capture+'跳轉(zhuǎn)到登錄完成頁(yè).jpg',cap.clipRect, cap.imgOptions);

		

	});

	casper.withFrame(0,function(){

		this.echo("切換到mian frame里");

		casper.withFrame(0,function(){

			this.echo("切換到mian frame下的sider frame里");

			this.echo("6、點(diǎn)擊應(yīng)用庫(kù)");

			this.click({type: 'xpath',path:sidebar.x.應(yīng)用庫(kù)});

			this.echo("7、點(diǎn)擊應(yīng)用分類");

			this.click({type: 'xpath',path:sidebar.x.應(yīng)用分類});

		});	

	});

	casper.waitForUrl(index.url,function(){

		test.assertHttpStatus(200,"跳轉(zhuǎn)到應(yīng)用分類頁(yè)");

		this.capture(path.capture+'打開(kāi)應(yīng)用分類.jpg',cap.clipRect, cap.imgOptions);

		

	});

	casper.withFrame(0,function(){

		this.echo("切換到mian frame里");

		casper.withFrame(1,function(){

			this.echo("應(yīng)用分類頁(yè)面")

			test.assertExists({type: 'xpath',path:category_list.x.表格},"表格檢查");

			test.assertExists(category_list.c.名稱,"名稱字段檢查");

			test.assertExists({type: 'xpath',path:category_list.x.海報(bào)},"海報(bào)字段檢查");

			test.assertExists({type: 'xpath',path:category_list.x.編輯},"編輯字段檢查");

		});

	});

    casper.run(function() {

        test.done();

    });

});


    

casperjs進(jìn)行web功能自動(dòng)化測(cè)試demo


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 国产精品高清视亚洲乱码 | 亚洲国产精品91 | 这里只有精品视频 | 欧美视频福利 | 一区二区三区四区精品 | 成人福利视频在线看高清观看 | 黄a在线 | 中文字幕乱码视频32 | 中文字幕乱码一区二区三区 | 91看片片 | 亚洲精品日韩精品一区 | 国产五月婷婷 | 亚洲国产区| 国产一区二区欧美丝袜 | 久久久久久久 | 久久就是精品 | 九九热精品在线视频 | 日本免费在线视频 | 日韩精品亚洲人成在线播放 | 香港免费毛片 | 国产在线欧美精品中文一区 | 香蕉视频在线观看视频 | 国产美女在线精品观看 | 免费福利视频在线观看 | 欧美卡一卡二卡新区网站 | 日本黄页网站在线观看 | 欧美1区2区3区 | 欧洲精品色 | 亚洲成a人片77777在线播放 | 特级丰满少妇一级aaaa爱毛片 | 热国产热综合 | 天天躁日日躁狠狠很躁 | 理论片午午伦夜理片在线播放 | 国产成人福利视频在线观看 | 国产乱码精品一区二区三区中文 | 欧美日韩一区二区中文字幕视频 | 国产高清精品在线 | 波多野结衣中文字幕2022免费 | 亚洲日本天堂在线 | 美乃雀中文字幕在线一区 | 亚洲国产成人av好男人在线观看 |