Using the Selenium server instead of the Selelium IDE

This commit is contained in:
Daniel Maldonado 2012-07-02 16:43:15 -04:00
parent cacc7443dc
commit a9037d6a22
3 changed files with 107 additions and 9 deletions

View file

@ -1,20 +1,49 @@
danny_mk, yeah. the best thing you could do is make a branch for the selenium work that doesn't have any other commits in it for other stuff
scrottie git branch selenium; git checkout selenium
scrottie git cherry-pick b8596fd10da910254150db02dc7336bda5a25c89 # to bring over the one commit that you did
scrottie then to push that: git push origin selenium
Install WebGUI using to the instructions at: https://github.com/plainblack/webgui/tree/WebGUI8 Install WebGUI using to the instructions at: https://github.com/plainblack/webgui/tree/WebGUI8
Create the following settings in your test site webgui.conf file:
"selenium" : {
"server" : "localhost",
"port" : "4444",
"browser" : "firefox",
"webgui_url" : "http://your_webgui_test_site_url"
},
Make sure you select all the defaults (do not change the "admin" user password) Make sure you select all the defaults (do not change the "admin" user password)
Pick the site design: "Style 03" (This is the style selected for testing) Pick the site design: "Style 03" (This is the style selected for testing)
Download the Selenium server from: http://seleniumhq.org/download/)
as of this writing it was selenium-server-standalone-2.24.1.jar
Running the Selenium Server (run in a separate command line/window)
java -jar selenium-server-standalone-2.24.1.jar
The -browserSessionReuse is to keep the selenium session open so you may troubleshoot page issues
The Selenium software automatically closes the browser when the tests are concluded. If you are writing/troubleshooting tests
and need the browser to remain open use:
java -jar selenium-server-standalone-2.24.1.jar -browserSessionReuse
GOTCHAS ---
If running the selenium tests in the IDE make sure to change:
<link rel="selenium.base" href="http://webgui.dbash.com" /> TO: <link rel="selenium.base" href="http://your_webgui_test_site_url" />
Selenium server not running (this may vary according to the values in your webgui.conf file):
Error requesting http://localhost:4444/selenium-server/driver/:
500 Can't connect to localhost:4444 (Connection refused)
Optional:
Download and install the Selenium IDE from: http://seleniumhq.org/projects/ide/ Download and install the Selenium IDE from: http://seleniumhq.org/projects/ide/
Take a look at the Selenium IDE documentation: http://seleniumhq.org/docs/02_selenium_ide.html Take a look at the Selenium IDE documentation: http://seleniumhq.org/docs/02_selenium_ide.html
Youtube videos can be quite handy: Youtube videos can be quite handy:
http://www.youtube.com/watch?v=i4NTGUm6oeQ http://www.youtube.com/watch?v=i4NTGUm6oeQ
http://www.youtube.com/results?search_query=selenium+tutorial+for+beginner http://www.youtube.com/results?search_query=selenium+tutorial+for+beginner
Use the Selenium IDE to open the test suites:
adminSuite.html
frameless/suite.html
GOTCHAS ---
Change: <link rel="selenium.base" href="http://webgui.dbash.com" /> TO: <link rel="selenium.base" href="http://your_test_website" />

View file

@ -3,7 +3,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case"> <head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="http://webgui.dbash.com" /> <link rel="selenium.base" href="http://webgui.dbash.com/" />
<title>login</title> <title>login</title>
</head> </head>
<body> <body>

69
selenium/test.pl Normal file
View file

@ -0,0 +1,69 @@
#!/usr/bin/perl
use Test::More tests => 98;
use Test::WWW::Selenium;
use Test::WWW::Selenium::HTML;
use WebGUI::Paths -inc;
use WebGUI::Config;
use strict;
WebGUI::Paths->siteConfigs or die "no configuration files found";
my $config = undef;
my $webguiSiteUrl = undef;
my $browser = undef;
my $seleniumServer = undef;
my $seleniumServerPort = undef;
if ( my $config_file = $ENV{WEBGUI_CONFIG} ){
my $webguiTestConfigFilename = WebGUI::Paths->configBase . '/' . $config_file;
$config = WebGUI::Config->new( $webguiTestConfigFilename ) or die "failed to load configuration file: $webguiTestConfigFilename: $!";
eval{
$webguiSiteUrl = $config->{config}->{selenium}->{webgui_url};
$browser = $config->{config}->{selenium}->{browser}; # firefox, iexplore, safari
$seleniumServer = $config->{config}->{selenium}->{server};
$seleniumServerPort = $config->{config}->{selenium}->{port};
} || die "Can't get Selenium configuration values from configuration file: $webguiTestConfigFilename\n";
}else{
die "Please read the instructions, you must specify a PERL5LIB and WEBGUI_CONFIG file value!\n";
}
#
my $sel = Test::WWW::Selenium->new(
host => $seleniumServer,
port => $seleniumServerPort,
browser => "*$browser",
browser_url => $webguiSiteUrl );
my $selh = Test::WWW::Selenium::HTML->new( $sel );
$selh->diag_body_text_on_failure(0);
#------------------------- Run All Tests here -----------------------
ok(1, "Login test");
$selh->run(path => "login.html");
ok(1, "Turn On Admin test");
$selh->run(path => "turnOnAdmin.html");
ok(1, "Admin Console tests");
$selh->run(path => "turnOnAdmin.html");
ok(1, "Version Tags tests");
$selh->run(path => "versionTags.html");
ok(1, "Clipboard test");
$selh->run(path => "clipboard.html");
ok(1, "Asset Helpers tests");
$selh->run(path => "assetHelpers.html");
ok(1, "New Content->Basic tests");
$selh->run(path => "newContentBasic.html");
ok(1, "New Content->Community tests");
$selh->run(path => "newContentCommunity.html");
ok(1, "New Content->Intranet tests");
$selh->run(path => "newContentIntranet.html");
ok(1, "New Content->Prototypes tests");
$selh->run(path => "newContentPrototypes.html");
ok(1, "New Content->Shop tests");
$selh->run(path => "newContentShop.html");
ok(1, "New Content->Utilities tests");
$selh->run(path => "newContentUtilities.html");