CasperJS 是一个开源的导航脚本和测试工具,使用 JavaScript 基于 PhantomJS 编写,用于测试 Web 应用功能,Phantom JS是一个服务器端的 JavaScript API 的 WebKit。其支持各种Web标准: DOM 处理, CSS 选择器, JSON, Canvas, 和 SVG
可轻松的定义导航场景,提供一些很有用的高级函数、方法和语法糖用于定义常用的任务,如:
一、casperjs简介 casperjs是一个基于PhantomJs的导航脚本和测试工具,它可以完成西面的常见任务。 定义 & 排序浏览器导航步骤 填充 & 提交表单 点击 & 跟踪链接 捕获网页截图 (还可以截取某一区域) 在远程DOM上进行断言测试 记录事件 下载资源,包括二进制文件 编写功能测试套件,结果保存为JUnit XML文件 抓取网页内容 二、依赖环境安装 安装phantomjs
概述 项目组有个网络爬虫的需求,Java有个爬页面的Jsoup,虽然可以一定程度上借助cookie,sessionId,TCP/IP通信等相关实现一定程度上的模拟浏览器行为,但作为服务器开发语言,在前端交互上,显然不能挥洒自如.老大推荐了CasperJs,同事在搞,顺便也偷喵的学习下. CasperJs 是一个开源的导航脚本处理和测试工具,基于PhantomJS(前端自
我们发现casperjs其实就是一段脚本,那么这段脚本是怎么运行起来的,是怎么调用phantomjs的。当我们运行一个casperjs实例的同时,按下ctrl+z让casperjs 在后台挂起,这个时候查询phantom就会发现有如下进程在运行: phantomjs /samba/work/casperjs/bin/bootstrap.js --casper-path=/samba/work/c
casperjs是一个js分支,用在采集比较多 var casper = require('casper').create(); casper.start(); casper.then(function step1() { this.echo('this is step one'); }); casper.then(function step2() { this.echo('
要使用casperjs先要安装phantomjs linux 下安装 phantomjs git源码后编译出版本 在phantomjs的bin子目录下生成二进制执行文件 在/usr/local/bin 子目录下创建软链接 $ ln -sf `pwd`/bin/phantomjs /usr/local/bin/phantomjs linux 下安装 casperjs $ git clone git
自己买了vps就是爽,想装什么就装什么。就比如说casperjs 1.首先需要安装它的运行环境phantomjs *将这个git项目clone到自己的vps上【https://github.com/ariya/phantomjs】 *通过查看官方文档,进行安装。【http://phantomjs.org/build.html】 *其实就是只执行 (1) sudo yum -y install g
如果直接用request,而不用casperjs,速度会有明显的提升(我不确定具体的量) 但是问题在于,casperjs基于phantom可以得到一个渲染过的页面,而且我们可以在其options里inject一些js的库,比如喜闻乐见的jquery,让操作dom信息变得非常的容易 PS:如果你觉得速度要提升下,可以设置casperjs的loadImages属性为false 以下是基于casperj
wget https://phantomjs.googlecode.com/files/phantomjs-1.9.1-linux-x86_64.tar.bz2 bunzip2 phantomjs-1.9.1-linux-x86_64.tar.bz2 tar xf phantomjs-1.9.1-linux-x86_64.tar mv phantomjs-1.9.1-linux-x86_64/
The Casper class The easiest way to get a casper instance is to use the module’s create() method: 最简单获取casper实例的方法是casper模块的create()方法: var casper = require('casper').create(); But you can also retrie
因为需要 就学习了一下casperjs,CasperJS是一个开源的导航脚本处理和测试工具,基于PhantomJS(前端自动化测试工具)编写。由于casperjs对PhantomJS的依赖性,所以需要安装PhantomJS。 PhantomJS最好下载最新的版本,由于网上版本较多,所以我就找到了较新的版本提供下载,是2.0.0版本的。可以在csdn上找到相应的下载资源。 PhantomJS安装完成
Signature: start(String url[, Function then]) Configures and starts Casper, then opens the provided url and optionally adds the step provided by the then argument: casper.start('http://google.fr/', fu
Signature: fill(String selector, Object values[, Boolean submit]) Fills the fields of a form with given values and optionally submits it. Fields are referenced by their name attribute. Changed in vers
安装 brew install casperjs 安装完成后使用 1. phantomjs –version 2. casperjs –version 查看安装的版本 因为 phantomjs 2.00对支持 casperjs 有问题 需要修改 /usr/local/homebrew/Cellar/casperjs/1.0.4/libexec/bin/bootstrap.js 增加一
step中的level step的level设置主要出现在then函数中。每个casperjs实例中有两个相关变量,一个是step,一个是steps。step一般情况下为函数类型。其中的默认设置为 step.level = 0;那么是不是每个函数都有这个属性?这其实是是动态面向对象语言的一个特点,就是可以动态添加任何属性进去。上面的step.level 就是动态添加属性并设置值为0; javasc
var casper = require('casper').create(); var fn1 = function() { var rst = 456; return rst; }; var nn = 123; var fn2 = function() { rst = nn; return rst; }; casper.start(); casper.thenOpen("http
(1)第一句就是require(‘casper’)。casper是casperjs这个项目的核心模块,在casperjs 的modules目录下。当然也是casperjs的核心功能在里面。 (2)require(’system’),这个system是什么模块,搜索下我们就发现,这个system是phantomjs的一个模块。我们能在phantomjs的官网上看到这个模块。同样还能看到WebPage
都是基于js语法规则的无头浏览器,casperJs是对phantomjs的一次封装。即phantomjs是原生的,而casperjs是封装在以phantomjs基础上的玩意。 这玩意的作用,就是完成模拟浏览器行为,模拟真实用户点击浏览器浏览网页的行为。然后可以通过编写代码,来控制casperjs来定向实现自己所需要的功能,比如常见的抓取某个网站的内容,就是常见需求--就是所谓的网络爬虫!
Casperjs介绍 1.概述 CasperJS是一个开源的,用JavaScript编写的,基于PhantomJS的导航脚本和测试工具 ,它简化了定义一个完成的导航操作所需的步骤,还提供了很有用的函数封装,方法,和语法糖。 2.应用场景 Casperjs可以应用到以下场景: Ø 定义、排列页面间导航的步骤 Ø 表单的填充、提交 Ø 点击、跟踪超链接 Ø 区域、页面截图 Ø 测试远程DOM
遇到了什么问题 一直在使用 casperjs 来做网页截图,http://tool.lu/site 简单的使用是没有问题的,当要给墙外网址截图的时候,那么问题来了。 触发点: 1. phantomjs 使用 proxy 2. 要截图的网址是 https 的 现象: 被截取的网页会跳转到about:blank,导致截图空白 Eh, what the fuck?! 怎么解决的 最主要的是 --ssl-
Phantomjs & Casperjs安装 本文所述均在ubuntu环境下。 预装:npm(sudo apt-get install nodejs) npm预装:java(?) --------------------------------------------------------------------------- 下载或者安装路径放到/usr/local/lib/下,否则可能会有权
今天用我的写的casper脚本: 来截网页的时候,截出来是个空的图片,半天没发现原因。加强了几个地方的代码之后还是出现同样的问题,最后定睛一看,发现打出来的debug信息里有这么一条蛋黄蛋黄的warning信息: [warning] [phantom] Loading resource failed with status=fail: https://...,原因是因为该网页是https的。 解决
本文翻译自这篇文章。 页面浏览 用CasperJS浏览页面比用PhantomJS更加方便和直观。 例如,先后打开webpage A,然后webpage B 用CasperJS的话,你可以这样写: casper.start('URL of website A', function(){ console.log('Started'); }); casper.thenOpen('URL of w
1.概述 Selenium是非常非常有用的,对JavaScript支持良好的Web层功能测试,集成测试工具。 Selenium分为Core与RC(Remote Controll)两个部分,其中Core是基础的,直接在HTML Table里编写测试代码的模块,而Remote Controll则支持用Java等语言编写测试用例,并自动调用FireFox1.5来运行。 具体的语法见http://www.
主要内容:功能测试的目标功能测试是软件测试的一个分支,旨在验证软件应用程序的功能,而不管功能是否根据需求规范运行。通过给出适当的输入值,确定输出并使用预期输出验证实际输出来测试每个功能。 功能测试包括通过GUI(图形用户界面),API(应用程序接口),安全性,数据库,客户端应用程序,服务器应用程序和应用程序功能进行测试。黑盒测试方法用于功能测试,其中测试内部逻辑的工作而不窥视内部代码。 功能测试的目标 功能测试的目标是检
功能测试从用户的角度验证场景。它类似于验收测试。 但是它不是通过 HTTP 进行通信,而是填充环境,如(填充)POST 和 GET 参数, 然后直接在代码里执行 Application 实例。 功能测试通常比验收测试快,并且在失败时提供详细的堆栈跟踪。 根据老司机的经验,功能测试应该是首选的,除非有专门的 Web 服务器设置 或者由 JavaScript 构建的复杂 UI。 功能测试是借助于具有良
什么是 Selenium? Selenium 是 ThoughtWorks 专门为 Web 应用程序编写的一个验收测试工具。据 Selenium 主页所说,与其他测试工具相比,使用 Selenium 的最大好处是: “Selenium 测试直接在浏览器中运行,就像真实用户所做的一样。Selenium 测试可以在Windows、Linux 和 MacintoshAnd 上的 Interne
本文向大家介绍GUI功能测试工具HP UFT vs Selenium,包括了GUI功能测试工具HP UFT vs Selenium的使用技巧和注意事项,需要的朋友参考一下 当我们谈论测试自动化时,我们会自动考虑可简化测试任务的工具。这些工具可以分为两大类-免费软件和许可工具。免费软件工具是可通过Internet免费获得的开源工具。这种工具的可靠性要差得多。但是,当我们谈论许可工具时,这些工具是具有
主要内容:为什么进行非功能性测试,在非功能测试下测试的参数,非功能测试的优点,非功能测试的缺点非功能测试是一种软件测试,用于测试非功能性参数,例如:软件的可靠性,负载测试,性能和责任。非功能测试的主要目的是根据非功能参数测试软件系统的读取速度。在功能测试之前,从未测试过非功能测试的参数。 非功能性测试作为功能测试也非常重要,因为它在客户满意度中起着至关重要的作用。 例如,非功能性测试将测试有多少人可以同时在任何软件上工作。 为什么进行非功能性测试 功能和非功能测试对于新开发的软件都是强制性
自动化测试平台 SWATHub 是 DaoCloud 的合作伙伴,他们为各类互联网应用提供了自动化测试的服务。我们推荐 DaoCloud 用户在完成持续集成单元测试等环节后,把应用部署在测试集群之上,运行自动化测试,进一步检验软件质量。以下内容由 SWATHub 提供。 SWATHub 是云端的自动化测试 SaaS 平台。通过创新的非编码的流程搭建和执行方式,SWATHub 能够帮助团队简单、高效
对于刚开始正式接触契约测试的团队,对于契约测试和功能测试之间的区别经常会存在争论。难就难在其实并不存在什么非黑即白的答案,更为重要的应该是逐渐加深对契约测试的理解和使用。 使用契约测试常见的场景,是验证规则或者处理错误请求。例如,我们有一个用户服务,允许消费者使用POST请求注册新用户,并在HTTP Body中包含所创建用户的详细信息。 一个简单的消费者与提供者交互的常规场景如下所示: Given