e2e 自动化集成测试 架构 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step (一) 京东 商品搜索
之前有发布一篇文章“e2e 自动化集成测试 环境搭建 Node.js Selenium WebDriverIO Mocha Node-Inspector”, 主要是讲了,如何搭建环境, 其中开发环境使用的是微软的Visual Studio, 使用之后, 我发现,其它并不怎么好用, 发面收费版的WebStorm对于开发Node.js其实是更为方便。 建议使用WebStorm来作为开发环境。 可以试用30天,当然你可以获得License, 方法你懂的。。。
前言
Node.js是开源的,基于Javascript,跨平台,高效,且提供丰富的资源的开放平台, 使用它不仅仅可以开发出高性能高并发的系统, 同时可以使用它,可以替代Load Runner, JMeter等自行化测试工具, Load Runer,收费,且不易使用。如有网页调整,其测试脚本也需要调整。 对于JMeter,对于初学者来说, 由其是对黑盒测试来说,使用它来做系统级的自动化测试是,学习成本非常高, 且不易使用。
Selenium服务,
也就是我们运行的 java -jar Selenium-server-standalone-2.42.2.jar, 这个服务需要一直开着,它会去调用我们在Path环境变量下的浏览器的驱动程序chromedriver.exe,或是其它的如IE
WebDriverIO 模块
我们可以使用WebDriverIO作为Selenium服务的客户端, 可以给该服务发送各种浏览器的操作指令。大家可以看控制台Selenium输出的日志记录。
Mocha 测试框架
这个类似于Nunit Framework, 一样, 都通一些测试步骤。
创建项目
1,创建项目

确定,配置结束
2, 安装WebdriverIo 框架

3,京东商品搜索测试
创建js文件D:\Projects\NodeJs\JD_Nodejs_e2e_Sample\TestCase\JD_Product_Search_TestCase.js, 内容如下:

/**
* Created by Administrator on 10/22/2014.
*/
var assert = require('assert');
var webdriverjs = require('webdriverio');
var browser = {};
describe('JD Product Search', function () {
this.timeout(99999999);
before(function (done) {
browser = webdriverjs.remote({ desiredCapabilities: { browserName: 'chrome', IsJavaScriptEnabled: true } });
browser.init(done);
});
it('Product Search Check', function (done) {
try {
console.log('Begin: Product Search Check');
browser
.url('http://jd.com')
.setValue('#key', '诺基亚(NOKIA) Lumia 1520 3G手机(黄色) WCDMA/GSM')
.pause(5000)
.click('input[class="button"]')
.pause(3000)
.getText('.J_1006105', function(err, text){
if(err) throw err;
console.log('得到结果' +text);
assert(text.indexOf('2899.00') > -1)
done();
})
;
}
catch (e) {
console.log(e);
}
});
after(function (done) {
done();
});
});
这些url, setValue, pause, click, getText。。。都是一些我们真实如何去操作一个网页的步骤。 详细可以参考官网: http://webdriver.io/api.html
这些方法, 引号部分,就是对应jQuery的选择器selector 参考http://www.w3school.com.cn/jquery/jquery_ref_selectors.asp, 对此, webdriverIO也有一些解释和不支持如 http://webdriver.io/guide/usage/selectors.html, contains不支持, first也不支持, 不过在后续的升级中会增加。
4, 执行效果:

方法1,是可以按照上面的方法来执行你的测试脚本。
方法2,手动,打入 mocha testcase/JD_Product_Search_TestCase,如下图

好了这个例子结果, 本来想第一例子,使用JD 的登录,如下 :
it('Login Check', function (done) {
try {
console.log('Begin: Login Check');
browser
.url('https://passport.jd.com/new/login.aspx')
.setValue('#loginname', 'username')
.setValue('#nloginpwd', 'password')
.click('#loginsubmit')
.pause(2000)
.getText('#loginbar', function(err, text){
if(err) throw err;
console.log('得到结果' +text);
assert(text.indexOf('xinereimzhi') > -1)
done();
})
;
}
catch (e) {
console.log(e);
}
});
但是结果发现, 只能登录一次, 再次的话就要输入 验证码, 关于验证码的识别 请看第二篇文章
e2e 自动化集成测试 架构 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step (一) 京东 商品搜索的更多相关文章
- e2e 自动化集成测试 架构 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step (六) 自动化测试结构小节
上一篇‘e2e 自动化集成测试 架构 京东 商品搜索 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step (五) 如何让窗体记录登录 ...
- e2e 自动化集成测试 架构 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step (四) Q 反回调
上一篇文章“e2e 自动化集成测试 架构 京东 商品搜索 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step (三) SqlServ ...
- e2e 自动化集成测试 架构 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step (三) SqlServer数据库的访问
上一篇文章“e2e 自动化集成测试 架构 京东 商品搜索 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step 二 图片验证码的识别” ...
- e2e 自动化集成测试 架构 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step (二) 图片验证码的识别
上一篇文章讲了“e2e 自动化集成测试 架构 京东 商品搜索 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step 一 京东 商品搜索 ...
- e2e 自动化集成测试 架构 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step (五) 如何让窗体记录登录状态Session
在写自动化测试的Node.js脚本时, 时常需要测试所写的case, 可能都需要去重新登录一遍,这将相当的耗时, 好在Selenium都借了Session的机制, 如果在最初的浏览器没有关闭的情况下, ...
- e2e 自动化集成测试 环境搭建 Node.js Selenium WebDriverIO Mocha Node-Inspector
Node.js已经出来了许多年载,至今才开始接触.周未在家闲来无事,一时心血来潮,Google了大量的文章,经过实验,终于可以把整个环境给搭起来, 废话不多话,请看步骤. 特别注意, 本文章是针对Wi ...
- 前端自动化之路之gulp,node.js
随着现在前端技术的不断发展,和各个公司对前端项目开发更新速度的要求,前端自动化越来越受到大家的重视,之前传统的前端开发方式已经越来越不能满足开发的需求了,于是各种自动化工具随之产生了.而gulp就是其 ...
- 【nodejs笔记1】配置webstorm + node.js +express + mongodb开发博客的环境
1. 安装webstorm 并破解 2. 安装node (以及express框架) 至官网下载并安装.(http://nodejs.org)v0.10.32 msi 安装后测试,打开命令行, c ...
- WebStorm+Node.js开发环境的配置
1 下载地址: webstorm:http://www.jetbrains.com/webstorm node.js:https://nodejs.org/download/ 2 安装node.js ...
随机推荐
- IE9下Coolite.Ext出现createContextualFragment错误
解决Ext在IE9上报错“createContextualFragment”,只需要在使用Coolite.Ext页面加入如下代码即可: if ((typeof Range !== "unde ...
- 高性能图文混排框架,构架顺滑的iOS应用-b
About GallopGallop是一个功能强大.性能优秀的图文混排框架. Features主要用于解决以下需求: 滚动列表的性能优化.Gallop使用异步绘制.视图层级合并.观察mainRunlo ...
- [JavaScript] js验证身份证
function checkIdCard(){ var vcity={11:"北京",12:"天津",13:"河北",14:&quo ...
- css3实现非矩形图片效果
经常在网站上看到有一些非矩形的图片展示.在以前可能我会毫不犹豫的直接放上张处理好的图片.但是这样的话确实有些不太友好.每每需要换图的时候,都要去开图像处理软件也是蛮拼的.自从有了css3的选装,妈妈就 ...
- Scroll文字滚动js
function ScrollImgLeft(){ var speed=50, doc=document, scroll_begin = doc.getElementById("scroll ...
- 用css制作三角形
用css制作三角形,主要是利用css元素给“盒模型”设置边框得到的. 上图,上边框和做边框,以及上边框和右边框的交合处,浏览器会按照直角的二分之一处绘制交合线.这是“盒模型”有宽和高时候的效果.我们假 ...
- 初探 ref 和 out
在一面试题中曾遇到这一题目: 说出下面几个函数的区别: private void test(string str){…} private void test(ref string str){…} pr ...
- vimrc for windows
set nobackupsource $VIMRUNTIME/vimrc_example.vimsource $VIMRUNTIME/mswin.vimbehave mswin:color deser ...
- Nginx的反相代理, 负载均衡
转自 http://freeloda.blog.51cto.com/2033581/1288553 大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负 ...
- 两页pdf打印为一页,并且放大(打印英文pdf常用)
多很英文书籍都是小书,若我们直接打印它的pdf会很厚,比如我要打印一本 thinking in C++,就要800+页.不如把两页打成一页.但是打成一页之后又太小了,需要放大.具体方法如下: 前提 ...