注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

无线时代辐射无穷

抓紧生宝宝,小心辐射

 
 
 

日志

 
 

配置 selenium rc for HTTPS 测试  

2008-10-21 08:37:03|  分类: XP-TDD |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

selenium is an automation tool, you can get it form here: seleium.openqa.org

用selenium测试HTTPS比较麻烦,搞了三天才将基本的东西设置好

1。选择工具

selenium有好几种,首先需要确定的是哪种工具适合

* selenium IDE: 是一个firefox的plug-in,这个基本上对任何测试都有用,主要是因为可以省下大量的手写测试的时间。根据我的经验,最新的版本(1.0 beta)在RHEL 5.0上不能用,所以我用的是0.87版本。

在这里下载:http://selenium-ide.openqa.org/download.jsp不过它只能在firefox上用

* selenium rc : 这个是用来遥控的。(rc = remote controller)如果你需要在一台电脑上控制其它几台电脑进行测试,我用的就是这个。不过我用它的主要原因是它支持比较多的脚本语言(perl,python。。。)写自动测试程序比较容易

* selenium core : 只能支持Selenese语言(a simple scrīpting language. Selenese has a number of strict limitations: it has no conditionals (no "if" statements), and it has no loops (no "for" statements). This can make writing complicated tests difficult or even impossible.)如果需要知道比较具体的区别的话,还是看它们自己的文件:http://wiki.openqa.org/pages/viewpage.action?pageId=7632

2。配置

配置有很多步骤和方面,首先需要了解的是selenium rc的工作流程

配置 selenium rc for HTTPS 测试 - wolfgangkiefer - 嘎嘎阅读器

图片看起来好像复杂,但是实际上我们可以将所有的部件放到一台机器上。我们需要了解的是它的工作流程。

selenium包含三个部件:

测试程序(testing scrīpt)

selenium rc (selenium server)

browser (firefox, in my case)

他们之间的关系如下

testing scrīpt <=>selenium server <=> browser

(1)测试程序将HTTP/HTTPS请求发给selenium server

(2)selenium server将请求转发(also called proxing)给browser,

(3)browser 执行请求,得到执行结果,然后回复给selenium server

(4)selenium server 将回复转发给测试程序*

(5)测试程序检验测试结果,记录之,然后执行下一个测试

这个过程中,selenium server和browser必须要在同一台机器上,但是测试程序可以随意。我的配置是三者都在同一台机器上。

测试环境配置 (testing environment configuration)

* perl  (我使用的是perl) 

  用perl写selenium的测试程序需要首先安装必要的module:  Test::WWW::Selenium  

  我的安装方式如下: 

  $> yum install perl.CPAN.386   

      -- yum 是linux里面的程序包安装程序 

  $> perl -MCPAN -e "install Test::WWW::Selenium"  

      --安装Selenium会同时要求你同时安装一些其它的module,比如Test::Mock Test::MockObject Test::More Test::Exception Test::Mock:LWP Test::Pod. 如果你的CPAN配置好了的话,这些安装都是自动的,安装过程中如果有提问,直接回车就好,一般不会有太多问题   (如果需要重新配置perl CPAN,比如说我

   $> perl -MCPAN -e "shell\"  

   CPAN> o conf init

* JAVA

  Selenium server 是用Java写的,所以你需要有JAVA。我开始用的是IBM JAVA 1.5后来才发现不行,就转到了SUN的JRE1.6

* Selenium Core : 在selenium rc 的网站上说需要 selenium core,但是我的经验是不必管它

* Selenium Server:  

** 下载: Selenium 1.0 Major release  

** unzip selenium-remote-control-1.0-beta-1-dist.zip 

** 到这里其实就可以了,但是让程序跑起来,这里需要一个额外的配置: 将firefox-bin放到系统路径里面去

   $> export PATH=$PATH:/usr/lib/firefox-1.5.0.9*

* HTTPS 

前面的都很简单。如果你不需要测试HTTPS,那么前面的配置就足够了。但是要让selenium server用HTTPS,还需要将一个专门用于测试的cert放到firefox里面去。步骤如下: 

** open firefox 

** import certificates:  

*** go to "Edit->Preference"

   -> open "Advanced" tab

   -> click "Security" (or "Encryption" )  

   -> click "view certificates", a new window will open,  

   -> then select "Web Sites" tab 

   -> then click "import"(图片如下)

3。最后一步,就是怎么让程序跑起来。这里有三个问题需要注意:

1> selenium rc beta 1。0 的SSL cert已经过期了(4/18/2008),所以我们需要将我们的系统时间改回到过期之前。

$> date 041800002007

2> 需要用让selenium server使用刚刚设定好的firefox profile

3> 需要设置一个特定的参数(trustAllCertificates),让所有的SSL请求能够顺利通达。[这条在selenium正式的网站上没有写出来,是通过看源程序找到的]

我的命令如下:

让selenium server跑起来:

java -jar ~/server/selenium-server.jar \

     -log /tmp/selenium.log \

     -trustAllSSLCertificates \

     -multiWindow \

     -firefoxProfileTemplate /opt/ipatest.profile

15:52:10.698 INFO - Writing debug logs to /tmp/selenium.log

15:52:10.699 INFO - Java: Sun Microsystems Inc. 10.0-b19

15:52:10.699 INFO - OS: Linux 2.6.18-8.el5 i386

15:52:10.702 INFO - v1.0-beta-1 [2201], with Core v1.0-beta-1 [1994]

15:52:10.758 INFO - Version Jetty/5.1.x

15:52:10.760 INFO - Started HttpContext[/selenium-server/driver,/selenium-server/driver]

15:52:10.762 INFO - Started HttpContext[/selenium-server,/selenium-server]

15:52:10.763 INFO - Started HttpContext[/,/]

15:52:10.772 INFO - Started SocketListener on 0.0.0.0:4444

15:52:10.773 INFO - Started org.mortbay.jetty.Server@5ac072

让测试程序跑起来:

perl test.pl

我的test.pl 程序开头部分如下:

----------------------------

#!/usr/bin/perl

use strict;

use warnings;

use Time::HiRes qw(sleep);

use Test::WWW::Selenium;

use Test::More "no_plan";

use Test::Exception;

my $sel = Test::WWW::Selenium->new( host => "localhost",

                                    port => 4444,

                                    browser => "*firefox",

                                    browser_url => "https://some.com");

$sel->open_ok("/testpage");

$sel->click_ok("link=Add User");

$sel->wait_for_page_to_load_ok("30000");

$sel->type_ok("form_title", "auto001");

$sel->type_ok("form_givenname", "selenium");

$sel->type_ok("form_sn", "001");

$sel->type_ok("form_krbprincipalkey", "redhat123");

$sel->type_ok("form_krbprincipalkey_confirm", "redhat123");

$sel->click_ok("document.form.submit[1]");

$sel->wait_for_page_to_load_ok("30000");

$sel->is_text_present_ok("s001 added!");

$sel->click_ok("link=Find Users");

$sel->wait_for_page_to_load_ok("30000");

$sel->type_ok("uid", "s101");

$sel->click_ok("//input[\@value='Find Users']");

$sel->wait_for_page_to_load_ok("30000");

$sel->type_ok("uid", "s001");

---------------------------

我其实没有写什么东西,上面的程序都是selenium IDE自动录的。

配置 selenium rc for HTTPS 测试 - wolfgangkiefer - 嘎嘎阅读器

  评论这张
 
阅读(540)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017