How to get selenium server running locally? - selenium

I need to have selenium server running in order to run some tests I'm creating in http://seleniumbuilder.github.io/se-builder/
This is not for the selniumIDE and not for a server grid, I need to be able to export from selenium builder and am directed to run them on a local selenium server, e.g. localhost:4444
I use the download page at http://www.seleniumhq.org/download/ but there isn't much info on basic stuff.
I see the link for the download and I can save the .jar file Now what? I don't know Java. Trying to click thru gets
[
[
How should I be compiling and then using it?

Selenium means different things depending on context.
Do you want to record/playback simple web browser interactions? You want SeleniumIDE or Selenium Builder. You need a standalone jar when replaying the tests from the command line; I think the docs tell you how but I couldn't find it. This small blog post tells you how. Essentially: download the Selenium Standalone Server jar file from SeleniumHQ and run it something like this:
java -jar c:\selenium\selenium-server-standalone-2.21.0.jar -htmlSuite "*firefox" "http://localhost:8080" "c:\test\my-test-suite.html" "c:\test\my-test-result.html"
(Note: even though it is called a "server", in this mode it does not listen on a port for incoming requests or anything like that; to most people's way of thinking, the jar file is actually a client in this mode, and the browser that it connects to is the server! The jar file does include a server, you're just not using it when executing a Selenese file like this.)
Do you want to run tests locally from your unit test runner (JUnit, NUnit, etc.?). You probably don't need a server. All the instructions are on this doc page.
Do you want to run the tests via a grid of multiple browsers, allowing you to distribute the load and do multi-browser testing easily? This is where Selenium server shines. Everything you need to know is on this doc page.

Related

Running automated tests in client machine

Basically my requirement is :
I have developed a framework using selenium webdriver,maven and testng for a application under test.
Now i have to pass that on to the client without sharing the source code ..so that if he wants he can run the test in his machine without having everything else installed ..except java. and the output should be stored in one of the specific folders of the client machine.
Can i use any plugin in maven which will store the result or copy the result file to any folder of client machine.?
Please guide me how to achieve this.. how to pass on the above to client so that test run smoothly in his machine .
is there anything i need to take care while am using maven in the project?
I am using chrome browser to run the tests..
The application under test is available to be accessed from any type of browser.
kindly suggest.

Launching Selenium test from bookmark?

I have some Selenium IDE scripts for automating tasks (deploying to an internal server via it's web interface), and I want to have bookmarks to launch them.
Don't want go to Tools -> Selenium IDE -> search test -> launch test, just want to click a bookmark and let the script run.
How can I achieve this? Am I missing a point?
Don't know if it makes a difference, but I'm currently using Firefox (if I have to change browser for this, it wouldn't be a problem).
Thanks
Not sure whether you be able to run tests pressing on a bookmark as browser plugins are usually run with a key combo. And bookmark is URL. Well the main issue in your question how to associate bookmark
with browser addon launching.
Well, I've investigated a lil bit workaround. Speaking about getting Selenium HTML Test Suites Running Automatically (i mean an alternative to bookmarks) some solutions are possible:
solution 1:
Patch the Selenium server code to support HTML suites.
Build a script to execute your HTML test suites.
Build a script to read the suites’ output reports and consolidate
the information for inclusion into your CC.NET report.
Setup details you can get here
Solution 2:
Selenium IDE plugin for Firefox to create tests
Java to run Selenium Server
Selenium Server to run test suites
Nant to generate reports for CruiseControl.NET
CruiseControl.Net as a continuous integration engine
Setup details here
Hope this be useful for you.
Bookmarks are nothing else than URLs, which makes it impossible to "bookmark" a functionality of a plugin, such as the Selenium IDE.
However, there might be other plugins out there that do what you want. I haven't had a closer look at it, but one candidate could be the Favorites (Selenium IDE) Firefox Add-on.

Run automated test cases on local machine's web browser - HUDSON

I use remote hudson server for test automation of webapplication. When I run the automated test cases they ran on the browser of that remote machine. I rather want them to run on my machine.
Is there a way I can achieve this.
Regards
You can run Jenkins slave on your machine and tie the job to it (there is such an option on the job definition page). Moreover, you can use NodeLabel Parameter plugin and use a parameter to specify to which node you want to tie your job. For example: by default it will run on Master, but you also can specify your slave when running it manually.
You don't say what tool you're using to drive the browser. If you're using selenium, you can set up a selenium server on your machine, then direct your tests to use your machine.
Considering you are talking about a test browser , I assume you use the selenium plugin for hudson/jenkins. you can change the location/capabilities of the node where the test are run against in your testcode.
capabilities.setBrowserName("firefox");
capabilities.setPlatform(org.openqa.selenium.Platform.WINDOWS);
also it's possible to exclude the master from the node list by editing the config file in the jenkins plugin folder
If you are refering to just restricting where the project can be run, this can be found
https://[jenkins name]/job/[jobname]/configure
under Restrict where this project can be run

Using selenium grid to execute remote code

We looking to use Selenium grid to parallelize our tests but some of our tests need to run java code local to the testing machine. In other words as well as automating the browser we also need to run some java code on the test machine. Are there hooks in Selenium Grid that will allow us to do this?
PS we are also looking at Jenkins to setup our environment.
EDIT: To be clearer, the java code I need to execute does a get from the web application, downloading pdf files that we cannot do with selenium alone. It then does some processing on those PDF files. I suppose the processing could be done on the server hub but the downloading can't. Unless someone can explain how to download a pdf using selenium and save it to a given location?
Selenium cannot execute your java code in the remote control machine. It will get executed only in the hub machine. However, taking screenshot, deal with popup, uploading the files in a specific path can be taken care by Grid.

How can I start a Play! Framework server from within a test

I want to write webdriver tests against my Play application. Normally when I do this in Java, I use Jetty to pull up a web server from within the test and run my webdriver tests against that server. I've been trying to look in the endless amounts of Python code which is the Play framework scripts, but I haven't found anything so far.
How can I bootstrap a Play server from within a test?
EDIT: I do not wish to use the selenium integration in Play.
Play provides a test mode, which launches your app and let's you run your unit as well as integration tests (based on selenium).
http://www.playframework.org/documentation/1.2.4/guide10 is a good starting point for reading.
There is also a plugin for webdriver suport:
http://www.playframework.org/modules/webdrive-0.2/home
If you want to see how the play jvm is actually started (without the python-stuff), you can start it with 'play run', then use "Process Explorer" to inspect the process and look at the arguments. They can look something like this:
"C:\Program Files\Java\jdk1.6.0_27\bin\java" -javaagent:c:\playPath/play-1.2.4.jar -XX:-UseSplitVerifier -Dfile.encoding=utf-8 -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n -Dplay.debug=yes -classpath C:\p\app\conf;c:\playPath\play-1.2.4.jar;[ALL JARS YOU NEED] -Dapplication.path=C:\p\app -Dplay.id= play.server.Server ""
Maybe this info helps you to start it manually in your test.