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 ...
随机推荐
- ios设备 分辨率(转)
1 iOS设备的分辨率 iOS设备,目前最主要的有3种(Apple TV等不在此讨论),按分辨率分为两类 iPhone/iPod Touch 普屏分辨率 320像素 x 480像素 Retina ...
- c++ 私有函数 头文件设计
clock.h #ifndef CLOCK_H_INCLUDED #define CLOCK_H_INCLUDED class Clock {public: static void HandleExd ...
- sublime 配置
Sublime Text 2是那种让人会一眼就爱上的编辑器,不仅GUI让人眼前一亮,功能更是没的说,拓展性目前来说也完全够用了,网上介绍软件的文章和推荐插件的文章也不少,而且很不错,大家可以去找找自己 ...
- spoj 345
DP 想了好久 还是看了一下题解.... f[i][j]表示i到j全部合并后的最小花费,f[i][j] = min{f[i][k]+f[k+1][j]+d[i][k]*d[k+1][j]} (i ...
- XP纯净版光盘ISO镜像文件
原版xp的下载地址,直接发链接得了-.-打开迅雷,按新建任务,把下面下载地址复制进来,下载就可以了 thunder://QUFodHRwOi8vc29mdC51c2Fpa2EuY24vstnX98+1 ...
- HDU4545+LCS
最长公共子序列. /* LCS 最长公共子序列 */ #include<stdio.h> #include<string.h> #include<stdlib.h> ...
- c缺陷与陷阱笔记-第六章 预处理器
1.这一章貌似有个小错误,开始时定义 #define f (x) ((x)-1),然后f(x)代表什么,书上说是(x) ((x)-1),应该是 (x) ((x)-1)(x) 2.关于宏定义中参数的2次 ...
- 阿里巴巴Java面试题
研二是需要找实习的时候了,因阿里有同学内推就直接参加了电话面试,不说其他的废话直接上问题,阿里的面试官还是不错的,和蔼可亲,为人谦虚,大牛什么都懂.(投的职位是java研发)1.java中所有类的父类 ...
- CentOS7 64位 自动分配IP地址设置
vim /etc/sysconfig/network-scripts/ifcfg-eno16777736 # ifcfg-后接网卡名称 配置如下,ONBOOT设置为yes HWADDR=:0C::E9 ...
- (转) MFC的入口点与消息循环,消息映射
博文分析的很不错,尤其是替换默认窗口过程的这块,本人觉得,所有的这些都可以参阅侯杰的<深入浅出MFC >. 来自:http://blog.csdn.net/sryan/article/de ...