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 ...
随机推荐
- [搜片神器]DHT后台管理程序数据库流程设计优化学习交流
谢谢园子朋友的支持,已经找到个VPS进行测试,国外的服务器: sosobt.com 大家可以给提点意见... 服务器在抓取和处理同时进行,所以访问速度慢是有些的,特别是搜索速度通过SQL的like来查 ...
- 1020: [SHOI2008]安全的航线flight - BZOJ
Description在设计航线的时候,安全是一个很重要的问题.首先,最重要的是应采取一切措施确保飞行不会发生任何事故,但同时也需要做好最坏的打算,一旦事故发生,就要确保乘客有尽量高的生还几率.当飞机 ...
- Windows下配置使用 MemCached
Windows下配置使用MemCached 工具: memcached-1.2.6-win32-bin.zip MemCached服务端程序(for win) Memcached Manage ...
- JavaBean 和 Map 之间互相转换
JavaBean 和 Map 之间互相转换 import java.beans.BeanInfo; import java.beans.IntrospectionException; import j ...
- PAT-乙级-1034. 有理数四则运算(20)
1034. 有理数四则运算(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题要求编写程序,计算2个有理 ...
- javascript div z-index, input tabindex属性说明
<html> <body> <form> 用户名: <input type="text" tabindex="1" / ...
- iOS开发UI篇—程序启动原理和UIApplication1
iOS开发UI篇—程序启动原理和UIApplication 一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就 ...
- orm框架与缓存的关系
1.mybatis规定,一级缓存没必要bean类实现序列化,但二级缓存bean类必须实现序列化. 因为二级缓存是基于namespace的也就是基于接口的,二级缓存可以设置存储源,可以是redis或者m ...
- PHP的(Thread Safe与Non Thread Safe)
在安装xdebug到时候你会有有TS和NTS版本的选择,在以前还有VC6和VC9的版本.如果你没有根据你目前的服务器的状况选择对应的版本的话,那么xdebug是安装不成功的. 一.如何选择 php5. ...
- 从今天起,正式步入cnblogs,向曾经的脚印说声对不起!
步入这个行业也好多年了,从来没有定居过一个地方. 看过很多前辈们留下的资料,对后者门(其中还有我)留下很多珍贵的东西. 所以,我要向前辈学习,壮大自己,在学习的同时,不要忘记帮助别人. 对曾经我留下的 ...