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);
}

});

但是结果发现, 只能登录一次, 再次的话就要输入 验证码, 关于验证码的识别 请看第二篇文章

时间: 2024-10-08 18:28:09

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 (三) SqlServer数据库的访问” 下面讲一下,对于在写Node.js自动化测试脚本过程中,的编写回调问题, 大家可能会发现, Node.js对于高并发处理的性能非常不错, 即使是在使用单核的情况下, 那是因为它是基于事情,说白了就是callback, 回调. 这样的话,对于写代码的人来说, 回调的深度一深就会晕了

架构 | 京东商品搜索架构设计

电商搜索系统存在以下特点:数据量庞大.(上亿级别)高并发.(日均pv过亿.数十亿)一条商品数据由商品基本信息.价格.库存.促销.评价等组成,这些数据存储在各自业务系统当中.(多数据源导致构建索引比较麻烦)召回率要求高.(哪个商家发现搜不到自家的商品肯定要抓狂,哪怕有一个搜不到.)时效性要求高,价格变动.库存变动.上下架等要求近实时.(更新时间过长虽然不会造成资损,但是会严重影响用户体验)索引更新量庞大.(上千万级别)排序!排序!排序!如何把用户最想要的排在前面,提升转化率,是搜索的核心价值.个性

python制作爬虫爬取京东商品评论教程

作者:蓝鲸 类型:转载 本文是继前2篇Python爬虫系列文章的后续篇,给大家介绍的是如何使用Python爬取京东商品评论信息的方法,并根据数据绘制成各种统计图表,非常的细致,有需要的小伙伴可以参考下 本篇文章是python爬虫系列的第三篇,介绍如何抓取京东商城商品评论信息,并对这些评论信息进行分析和可视化.下面是要抓取的商品信息,一款女士文胸.这个商品共有红色,黑色和肤色三种颜色, 70B到90D共18个尺寸,以及超过700条的购买评论. 京东商品评论信息是由JS动态加载的,所以直接抓取商品详

node.js和socket.io纯js实现的即时通讯实例分享

在这个例子中,其实node.js并没有真正起到服务器的作用,因为我们这里可以直接运行client.html文件,而不用输入url请求,当 然,要想输入url请求页面内容还需要加入请求静态文件的代码.这个实例中node.js最重要的作用就是将服务端迁移到了js,实现了客户端和服务端语 言上的统一,我们只要在浏览器上同时运行两个client.html客户端页面,即可进行简单的即是通讯了,socket.io才是我们真正用来实现即时 通讯的消息的收发. var server = http.createS

详谈京东的商品搜索系统架构设计

京东商品搜索引擎是搜索推荐部自主研发的商品搜索引擎,主要功能是为海量京东用户提供精准.快速的购物体验.虽然只有短短几年的时间,我们的搜索引擎已经经过了多次618店庆和双11的考验,目前已经能够与人们日常使用的如谷歌.百度等全文搜索引擎相比,我们的产品与其有相通之处,比如涵盖亿级别商品的海量数据.支持短时超高并发查询.又有自己的业务特点: 海量的数据,亿级别的商品量: 高并发查询,日PV过亿: 请求需要快速响应. 搜索已经成为我们日常不可或缺的应用,很难想象没有了Google.百度等搜索引擎,互联

Python3中级玩家:淘宝天猫商品搜索爬虫自动化工具(第一篇)

Python3中级玩家:淘宝天猫商品搜索爬虫自动化工具(第一篇) 一.前言 大家好,今天我要来讲讲一个比较实用的爬虫工具,抓取淘宝的关键字商品信息,即是: 输入关键字,按照价格等排序,抓取列出的商品信息以及下载图片,并且支持导出为Excel. 如果如下: 看完下面的讲解,Python语言就掌握得差不多,中级水平了,而且这个封装后的工具还是很好用的. 感觉自己萌萌哒~~ 二.原理 大家知道什么叫爬虫,它也叫网络蜘蛛,机器人等,意思就是说自动的程序,可以去抓取使用网络协议传输的内容. 目前来讲爬虫主

Jenkins+Ant+Jmeter接口自动化集成测试实例

Jenkins+Ant+Jmeter接口自动化集成测试实例 一.Jenkins安装配置 1.安装配置JDK1.6+环境变量: 2.下载jenkins.war,放入C:\jenkins目录下,目录位置随意: Jenkins启动方法: cmd进入Jenkins目录下,执行java -jar jenkins.war 浏览器输入:localhost:8080可以访问Jenkins表示配置成功: 二.Ant安装配置 1.下载apache-ant-1.9.6:放入E盘,如E:\apache-ant-1.9.

Java爬虫爬取京东商品信息

<strong> java<em style="color:red;">爬虫</em></strong>工具:Jsoup Maven地址 <dependency> <!-- jsoup HTML parser library @ https://jsoup.org/ --> <groupId>org.jsoup</groupId> <artifactId>jsoup</ar

爬取京东商品信息和评价的爬虫实现源码

话不多说,直接上源码: var keyword = "d3.js";//@input(keyword, 查询关键字, 爬取该关键字搜索出来的京东商品) var comment_count = 100;//@input(comment_count, 爬取的评论数, 最多爬取多少条评论) var page_count = comment_count / 10; keyword = keyword.trim(); var scanUrls = []; scanUrls.push("