首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

利用 Selenium WebDriver + Grid2 实现并行的浏览器端性能测试(2)

利用 Selenium WebDriver + Grid2 实现并行的浏览器端性能测试(2)

浏览器端性能测试框架的实现Selenium WebDriver 编写测试脚本利用 Selenium WebDriver 为动作执行和页面跳转进行设计。Selenium WebDriver 可以模拟用户上网的行为,添加计时代码用以测算用户某个动作执行的时间或是页面跳转需要的时间。以用户登录为例,在输入用户名和密码之后开始用 startTrans 函数开始计时,在点击提交按钮页面跳转之后用 endTrans 函数结束计时。
清单 1. 在 Selenium 中添加计时代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public static void startTrans(WebDriver driver, String transName)
{
mapPool.put(transName, System.currentTimeMillis());  
}   
public static void endTrans(WebDriver driver, String transName) throws \
                                      InterruptedException, IOException
{

   long endtime = System.currentTimeMillis();
   long starttime = mapPool.get(transName);  
   String timestamp =String.valueOf(endtime-starttime);
   FileWriter writer = new FileWriter(seleniumResult,true);
   writer.append(transName + "," + timestamp+"," );
   writer.close();
   mapPool.remove(transName);      
      
}     
driver.findElement(By.id("username")).sendKeys(userName);           
driver.findElement(By.id("password")).sendKeys(passWord);
startTrans(driver,"login");
driver.findElement(By.xpath("//INPUT[contains(@class, \
                 'lotusBtn lotusBtnSpecial')]")).click();
endTrans(driver,"login");




利用 DummyNet 模拟不同网络条件下用户的案例执行。带宽模拟与控制是性能测试的一个常规需求。很多时候我们必须能够提供可变的带宽、上行和下行速率,从而获得这些条件下性能的表现。开源工具 DummyNet 是一款优秀的网络控制工具,它通过重载本机的网卡驱动,提供给开放人员命令行接口去模拟带宽可变利用。调用 DummyNet 的命令后执行 Selenium 脚本可以设置网络带宽和延迟。以下命令限制从源地址到目的地址的流量带宽 2Mb, 延迟 300ms。
1
2
ipfw add pipe 2 ip from %sourceip%  to %targetip% out proto ip
ipfw pipe 2 config delay 300ms bw 2Mbit/s




利用 HttpWatch 和 DynaTrace AJAX 为特定的页面请求记录时间。HttpWatch 和 DynaTrace AJAX 是两款强大的网页数据分析工具。它们通常集成在浏览器的工具栏。以往我们通过手动打开这些工具在浏览页面的同时收集所需的分析数据。在新的框架中 Selenium 脚本可以调用它们的接口驱动浏览器从会话中启动分析工具并收集保存性能信息。
清单 2. Selenium 脚本调用 DynaTrace AJAX 接口
1
2
3
4
5
6
public void start()
{
  selenium = new DynaTraceSelenium("localhost", 4444, "*iexplore",
                                          "http://localhost:9090");
  selenium.start();
}




Selenium Grid2 集中控制测试环境步骤一:启动中央节点(Hub)。Hub 会接收测试请求并将它们分布在正确的节点上。启动 Hub 的默认端口为 4444,也可以通过参数指定端口。打开地址:http://localhost:4444/grid/console,通过页面可以观察 Hub 的状态。启动命令如下 :
1
java -jar selenium-server-standalone-2.14.0.jar -role hub




步骤二:配置和启动远程控制节点(rc)。远程节点是您需要测试的测试机所在的物理机或虚拟机。启动节点时需要传入 Hub 的 IP 地址和端口号。默认情况下,节点的端口为 5555,每个节点可以启动 11 个浏览器,包括 5 个 firefox、5 个 chrome 和 1 个 ie 浏览器。最多有 5 个并行的测试案例。用户也可以通过参数指定端口和浏览器,以下命令将会启动 Linux 远程节点上的三个 firefox 浏览器进行并行测试,它们指向在另一台机器的 Hub 节点。
1
2
3
4
java -jar selenium-server-standalone-2.14.0.jar -role node \
-hub http://remotehost:4444/grid/register \
-browser browserName=firefox,version=3.6,maxInstances=3,\
platform=LINUX

返回列表