前端自動化測試工具PhantomJS+CasperJS結合使用教程
下面的安裝測試基於window系統(win10)
1.PhantomJS
PhantomJS 是一個基於 WebKit 的伺服器端JavaScript API,它全面支援web而不需瀏覽器支援,其快速,原生支援各種Web標準: DOM 處理, CSS 選擇器, JSON, Canvas, 和 SVG。 PhantomJS 可以用於 頁面自動化, 網路監測 , 網頁截圖 ,以及 無介面測試 等
1.1 安裝
1.2 使用
- 示例demo1.js–截圖:
var page = require('webpage').create();
page.viewportSize = {
width: 1366 ,
height: 800
};
var urls = ["https://www.baidu.com/", "https://zrysmt.github.io/"];
page.open(urls[0], function() {
console.log('welcome!');
page.render('screen.png');
phantom.exit();
});
命令列輸入:
phantomjs demo1.js
- 示例demo2.js–DOM操作
var page = require('webpage').create();
phantom.outputEncoding = "gbk" ; //解決中文亂碼
page.open("https://www.baidu.com/", function(status) {
console.log(status);
page.render('screen.png');
var title = page.evaluate(function() {
return document.title;
});
console.log('Page title: ' + title);
phantom.exit();
});
執行命令同上,得到結果是:
success Page title: 百度一下,你就知道
所執行的DOM操作要在page.evaluate
中,
- 示例demo3.js–讀取檔案
var system = require('system');
var fs = require('fs');
phantom.outputEncoding = "gbk"; //解決中文亂碼
var filePath = "url-02.txt";
var content = fs.read(filePath);
console.log(content);
url-02.txt中如果是很多url,一個一個訪問url的話,可能會這樣實現
page.open(urlArr[0], function(status) {
page.open(urlArr[1], function(status) {
page.open(urlArr[2], function(status) {
//... ...
});
});
});
這樣寫法就有很大的不方便,於是我們就引入了CasperJS
2.CasperJS
2.1 安裝
npm i casperjs --save-dev
為方便使用也可以加入到環境變數中
2.2 使用
- 示例demo:casper-test.js–開啟網頁截圖
var casper = require('casper').create();
casper.start();
casper.thenOpen('http://www.baidu.com/', function () {
casper.captureSelector('baidu.png', 'html');
});
casper.run();
執行命令如下
casperjs casper-test.js
- 示例demo:casper-test2.js–操作DOM,訪問網頁
var casper = require('casper').create();
var links;
function getLinks() {
// Scrape the links from top-right nav of the website
var links = document.querySelectorAll('ul.navigation li a');
return Array.prototype.map.call(links, function (e) {
return e.getAttribute('href')
});
}
// Opens casperjs homepage
casper.start('http://casperjs.org/');
casper.then(function () {
links = this.evaluate(getLinks);
});
casper.run(function () {
for(var i in links) {
console.log(links[i]);
}
casper.done();
});
執行命令類比同上
- 示例demo:casper-test3.js–單元測試
function Cow() {
this.mowed = false;
this.moo = function moo() {
this.mowed = true; // mootable state: don't do that at home
return 'moo!';
};
}
casper.test.begin('Cow can moo', 2, function suite(test) {
var cow = new Cow();
test.assertEquals(cow.moo(), 'moo!');
test.assert(cow.mowed);
test.done();
});
執行命令
casperjs test casper-test3.js
結果是:
Test file: casper-test3.js
# Cow can moo
PASS Subject equals the expected value
PASS Subject is strictly true
PASS Cow can moo (2 tests)
PASS 2 tests executed in 0.031s, 2 passed, 0 failed, 0 dubious, 0 skipped.
- 示例demo:casper-test4.js–瀏覽器測試
casper.test.begin('Google search retrieves 10 or more results', 5, function suite(test) {
casper.start("http://www.google.fr/", function() {
test.assertTitle("Google", "google homepage title is the one expected");
test.assertExists('form[action="/search"]', "main form is found");
this.fill('form[action="/search"]', {
q: "casperjs"
}, true);
});
casper.then(function() {
test.assertTitle("casperjs - Recherche Google", "google title is ok");
test.assertUrlMatch(/q=casperjs/, "search term has been submitted");
test.assertEval(function() {
return __utils__.findAll("h3.r").length >= 10;
}, "google search for \"casperjs\" retrieves 10 or more results");
});
casper.run(function() {
test.done();
});
});
執行命令如demo3類比
3.PhantomJs+CasperJs
實現非同步操作
var casper = require('casper').create(); //新建一個頁面
casper.start(url1); //新增第一個URL
casper.thenOpen(url2); //新增第二個URL,依次類推
casper.thenOpen(url3);
casper.thenOpen(url4);
casper.run(); //開始導航
demo(casper-phantomjs.js)如下–一次訪問三十幾個url:
var fs = require('fs');
var casper = require('casper').create();
phantom.outputEncoding = "gbk"; //解決中文亂碼
var filePath = "url-02.txt";
var content = fs.read(filePath);
var urlArr = content.split('\n');
casper.start();
for (var i = 0; i < urlArr.length; i++) {
casper.thenOpen(urlArr[i], function() {
this.echo('Page title: ' + this.getTitle());
});
}
casper.run();
// phantom.exit();
執行命令
casperjs casper-phantomjs.js
相關推薦
前端自動化測試工具PhantomJS+CasperJS結合使用教程
下面的安裝測試基於window系統(win10) 1.PhantomJS PhantomJS 是一個基於 WebKit 的伺服器端JavaScript API,它全面支援web而不需瀏覽器支援,其快速,原生支援各種Web標準: DOM 處理, C
nightwatch-前端自動化測試工具安裝
cer als 開始 btn RoCE 2.4 tps lob 調試 最近再弄這個前端自動化測試工具,剛開始弄了幾天,目前為止遇到很多坑,光是安裝就費了不少時間,記錄一下,以便自己忘記。 這裏是它的官網,目前沒找到中文版的官網,全英文,對我這個英語渣來說有點難理解。 一、
基於angularJS的前端自動化測試工具Protractor快速入門
1.官網 2.簡介 Protractor是一個為Angular和AngularJS應用程式而生的端對端的測試框架,Protractor就像使用者一樣在真實的瀏覽器中去互動並執行你的測試程式。 (1)就像一個使用者一樣測試: Protractor是基於WebDrive
前端自動化測試工具--使用karma進行javascript單元測試
前面我寫了一篇部落格是《前端自動化測試工具PhantomJS+CasperJS結合使用教程》其中使用CasperJS不僅可以進行單元測試,還可以進行瀏覽器測試,是個很不錯的工具,今天介紹的工具是Karma+Jasmine+PhantomJS組合的前端javasc
自動化測試工具:Selenium 無頭瀏覽器:PhantomJS
Ajax只是一個載入技術 selenium是可以通過pycharm自動匯入模組的 然後把檔案複製到scripts目錄下,在把下載的路徑設定成環境變數就可以使用了 面試的時候直接說自己會自動化測試工具、無頭瀏覽器去爬取動態載入頁面、js分頁技術、ajax記載技
iOS自動化測試工具Appium在mac上安裝和使用教程
原文http://www.jianshu.com/u/770cb5983e6d 本文只適用於MAC下測試iOS應用 image.png 接下來就是配置Appium的環境,這篇文章講的很詳細,同樣適用目前的1.6.5版本.大家可以去按步執行一下.(如果這個過程中出現任何問題,請點選這裡),因為我們已經
自動化測試工具TW報錯及解決方法
ima -1 需要 1.2 使用 policy 報錯 span 技術 自動化測試工具TestWriter使用時遇到的環境配置問題及解決方法如下,歡迎大家一起溝通交流~ 1.1 TW環境 1.1.1 Agent無法連接至服務器 1) 如果Agent與服務端不在一個網段,需要
推薦五款Android 應用的自動化測試工具
height .com 遍歷 瀏覽器 準備 pro 模擬器 ive ron 如今自動化測試已經應用到每天的測試中。這不足為奇,因為自動化測試在測試過程中節約了時間,還能避免包括人為因素造成的測試錯誤和遺漏。 自動化測試工具選擇很多。一些是開源的,一些非常貴。一些自動化工具
WebDriver自動化測試工具(1)---C#環境搭建
quit 打開百度 asp.net ace chrome color 根路徑 var image Webdriver是一個前端自動化測試工具,可以模擬用戶點擊鏈接,填寫表單,點擊按鈕等操作,下面介紹其使用 一.下載WebdriverC#類庫以及對應瀏覽器驅動 http:
生菜自動化測試工具介紹
aid net 使用方法 麻煩 後來 mar 主體 幫助 穩定性測試 工具簡介: 這是一款實現操作系統性能、功能、穩定性測試自動化的工具。從測試工具的下載、安裝、配置、測試、發送測試結果到郵箱完全實現自動化。 設計初衷: 開始做性能測試時,需要自己手動安裝、配置、執行測
前端自動化構建工具-gulp
出現 ssa uglify 提醒 連接 變化 監聽 前端 復雜 gulp 和grunt這兩個是我知道的自動構建工具,但是說實話都沒在項目中用過,不太清楚自動化構建是什麽意思, 1、grunt和gulp有什麽相同點和不同點? (1)、易於使用:采用代碼優於配置策略,gul
前端自動化測試之UI Recorder(一、介紹)
而且 行為 文件上傳 語言 系統 nod clas 調用 開發 UI Recorder是一款零成本的整體自動化測試解決方案,一次自測等於多次測試,測一個瀏覽器等於測多個瀏覽器! 支持所有用戶行為: 鍵盤事件, 鼠標事件, alert, 文件上傳, 拖放, svg, sha
前端自動化測試之UI RECORDER(二、PC錄制)
啟動服務 域名 run ports shadow 科學 兼容 webp htm PC錄制教程 準備工作: NodeJs環境 請自行先安裝好nodejs環境,在命令行執行node -v命令成功說明已經安裝成功 Chrome瀏覽器 JAVA環境 UI Recorder We
自動化測試工具selenium的使用
img cnblogs 原創 font strong 自動化測試 ges mage src 尊重博客園原創精神,請勿轉載! 1.自動化測試的前提 自動化測試工具selenium的使用
Apache壓力(並發)測試工具ab的使用教程收集
ros 格式 單位 需要 程序 () ont pat 此外 說明:用ab的好處,在處理多並發的情況下不用自己寫線程模擬。 官網: http://httpd.apache.org/(Apache服務器) http://httpd.apache.org/docs/2.0/
前端自動化構建工具Gulp簡單入門
margin 構建工具 function col 處理 .com order lis web 昨天聽同事分享了Gulp的一些簡單使用,決定自己也試一試。 一、安裝 gulp是基於nodejs的,所以要先下載安裝node(直接搜node,在官網下載就好了) 1、全局安
QuickTester自動化測試工具
自動化測試工具 軟件測試 QuickTester(以下簡稱QT)是AI測試工廠內部孵化的一款自動化測試工具產品。QT是同時支持Win32,Web以及Android自動化測試工具,能夠用於創建功能和回歸測試。它自動捕獲、驗證和重放用戶的交互行為,將繁重的重復性測試工作通過自動化手段實現,極大的提升了測試
基於jest和puppeteer的前端自動化測試實戰
功能模塊 adl bee 不用 devtools face 兼容 選擇 單元 前端測試現狀 經常聽到後端同學說“單元測試”,前端寫過測試用例的有多少?答案是:並不多,為什麽呢?兩個主要原因 1、前端屬於GUI軟件,瀏覽器眾多,兼容問題讓人頭大,用
自動化測試工具整理
其他 ner 自動化 load man 測試 sel qtp 自動 自動化測試包含多種,如Web自動化、手機自動化等: Web自動化測試工具:selenium、QTP。 性能自動化測試工具:loadrunner、jmeter。 接口自動化測試工具:SoapUI、
前端自動化構建工具
urn 自身 合並文件 limit ase 有效 www. javascrip 路徑配置 全局安裝是把包安裝在Node安裝目錄下的node_modules文件夾中,一般在 \Users\用戶名\AppData\Roaming\ 目錄下,可以使用npm root -g查看全局