Am trying to automate a sample Flex application using Flex Monkium and selenium.
The steps and sample application (MonkeyContacts) are given in gorilla logic site http://www.gorillalogic.com/testing-tools/flexmonkium/flexmonkium-docs/using-flexmonkium .
After following the steps in the above application i am able to record the tests using Selenium IDE and able to run those tests using Eclipse and TestNG.
But when am trying to do the same steps in other applications ( http://learn.adobe.com/wiki/display/Flex/Download+Projects ) , not able to record the tests. There is no interaction between Flex Monkey and Selenium. I have added the automation-monkey.swc and added the Additional compiler arguments also.
How to make the application to interact with selenium..?
Thanks in Advance.
Gorilla logic has beautify stated all related steps for flex monkey automation, I'll say you give it a look again. Flex monkey documentation
Apart from this always make sure
Flex monkium console icon turns green (if not its NOT compiled properly, check compiler arguments.
Use firefox version 10 or less. Selenium is not compatible with later versions.
Related
I have created a Java program that utilizes Chrome Driver, Selenium, and Java Excel API. The program is used to automate a few different processes on Google Chrome. Currently, setting up this automation is more complicated than I would like it to be: the user needs to download a zipped folder, unzip it, download the Java Runtime Environment, and launch the program using the executable.
My goal is to simplify the installation of the automation. Ideally, a user would come to a SharePoint website, fill out a form with the parameters of the automation (potentially upload an Excel Workbook), click an "execute" button, and the automation would run. As a result, the automation would run seamlessly across platforms (Windows and MacOS) without any modifications.
I have researched changing the programming language to achieve this functionality. I concluded that a different language could remove the need for a Java Runtime Environment download, but it would still require some type of installation process. Additionally, I have researched using HTML/JavaScript, but I concluded that this is not possible because the functionality (triggering a web automation from a website) could be used maliciously without the user's knowledge. Finally, I began researching containerization through Docker. This solution seems promising but I do not know enough about it to determine if it is the appropriate solution.
What would be the best route to achieve the results that I am looking for (outlined in the second paragraph)? I have access to enterprise-grade databases that I thought may be useful. Would it be possible to have the form trigger a virtual machine to run the automation on a remote database and then output the result to the user once it has finished?
Thank you in advance for any guidance you can provide. I do not know much about making a Java program into an enterprise-grade application so any information about what to research is extremely useful. Finally, please do not hesitate to correct my logic at any point in this question as I may have drawn the wrong conclusions from my research.
You want to look into creating a jar file with your selenium code.
I am struck up in my below task, hope this idea will be very useful for many.
In my company they use several Health Monitoring tool and we do the Health Checks manually.
We have a separate health check plan and process, where we go to Web Applications like Site Scope or open certain jars like Spectrum CA (runs as a JNLP file) and check for the server status/health data manually.
As we have more than 50 monitoring tools like that I suggested to automate the Health Checkups.
Initially I was suggested to do the automation using Python but I am a JAVA Web developer so I moved to Selenium/Jsoup and use Web-scraper concept to fetch the information and do the health checkups. I am able to do considerable progress using Selenium to automating the manual Health Checks using the Web Application.
Problem: As I mentioned we also need to do certain health checkups using jar, desktop apps or jnpl file (applet), I am not sure on how to proceed in automating these. We are not supposed to use any paid tools or unreliable freeware which record and replay the manual desktop operations.
I do not have any idea on those, so can you please suggest me a tool or testing automation tool for these Desktop applications where I should be able to LogIn into it, Enter some text in the TextBox, Search, filter, navigate and get a value and finally verify whether the health is green ?
Note: Few of the application are legacy application so they don't use any api calls.
There are 2 free tools which can cater to your needs which can be used alongside Selenium w/ java:
1) AutoIT - good for window based applications
2) Sikuli - an image based automation Tool
I do not have any idea on those, so can you please suggest me a tool or testing automation tool for these Desktop applications where I should be able to LogIn into it, Enter some text in the TextBox, Search, filter, navigate and get a value and finally verify whether the health is green ?
For the above question, Winium can be used for desktop app automation. It is similar to Selenium. You can write code in java to automate the process. below is the git link for Winium.
https://github.com/2gis/Winium.Desktop
I was looking at FlaUI, you can have a look at this as well. This works with c# though
https://github.com/Roemer/FlaUI
We have a requirement to run selenium script recorded in fire fox plugin via tool which can run these scripts and give logs on a web console. Does anyone know of such a tool?
Requirement is that QA guy records a bunch of test cases and then some non tech person can simply come in and run these and see verbose output.
Have a look at the following plugin for Selenium-IDE to save log to a file.
https://addons.mozilla.org/nl/firefox/addon/file-logging-selenium-ide/
if you are looking for record playback too, this would be a better option.
https://addons.mozilla.org/en-US/firefox/addon/imacros-for-firefox/
They have plugin for chrome as well, so hopefully you can use run the same recorded scripts in chrome browser as well.
Context: I am working with a project that involves an android-controlled hardware and an iOS app that talks to that android device via websocket. We are in a good shape in terms of lower level (API, unit, contract) testing, but there's nothing to help us with the UI part of it.
UI automation, especially end-to-end is not my favorite way of testing because it is flaky and slow, and I believe it's purpose is only to guarantee that the main user flows are executable rather than every single piece of functionality.
So I developed a suite that includes both the android and the iOS code and page objects, but right now the only thing I can do is run each one of them individually:
Start the appium server and appium driver for android, run the android app suite
Start the appium server and appium driver for ios, run the ios app suite
But that is not quite exactly what I want - since this is going to be the only test case, I want it to be full end-to-end; starts appium server, starts android server, also start appium drivers for both, run test that places an action on ios and verifies that android is executing it.
I don't want to have someone manually running this thing and looking at both devices. If this doesn't work, android and ios suites are going to run separately, relying on mocked counterparts.
So I am throwing it here to the community because none of the test engineering groups I posted to were able to come up with an answer.
I need to know if anyone has ever done or seen this to shed me a light, or if anyone knows how to do it.
Can Steve Jobs and Andy Rubin talk?
I would look into starting 2 appium instances via command line on different ports and then connecting each suite to a given appium instance. Then at this point you just need to properly thread each suite so that you can properly test your code. To do that you will need to add dependencies (can be easily done using TestNG).
Steps:
1) Create a thread for IOS and Android Suites
2) Run each suite on a different appium session (aka different ports)
- You will need to know how to run from command line for this
3) Setup your tests to depend on one another (I recommend using TestNG as the framework)
4) Use threading logic to properly wait for tests to finish before starting. Yields and Timeouts will be very useful, as well as TestNG dependencies, it will save your life given what you are doing.
NOTE: Appium has a timeout functionality where if a session does not get a command in 60 seconds by default the session is destroyed. AKA make sure you increase or find a way to turn off that timeout.
Additionally as a recommendation I would advise the use of TestNG over JUnit. JUnit is a Unit testing framework, meaning you are testing specific functional units. This however is not ideal for app automation as many areas of an app depend on prior functionality. For example if you have a login screen where the login functionality is currently broken you don't want to run all of the tests the need the user to be logged in to pass. This would cause not only a lot of fright when a large portion of your tests fail, it will also make it harder to track down why it failed. Instead if you have all of these tests depend on the login feature passing then if the login fails there is a single error which can then be fixed, and all the tests that depend on the login feature don't run when you know they are going to pass.
Hope this process helps, sorry I obviously can't send out code in this as it would take hours for me to type/figure out.
Problem solved, it was as simple as it looked like.
What I did was to implement an abstract class that builds drivers for both android and ios with their capabilities and specific appium port, instantiating their respective page objects as well. All the test classes extend this abstract class.
Then I divided the suite in 3 pieces:
One for the Android only, which only accesses the page objects for android;
One for ios, which also accesses only the page objects for ios;
And a third test that spins up both ios and android and controls them both.
To avoid always starting two appium servers and also avoid always downloading the latest app versions for both android and ios I created gradle tasks for each platform, so the CI jobs can call only the task that prepares for the platform it has to test at a given moment.
I'm writing Selenium tests using Java + Maven + Selenium WebDriver. Our customer wants these tests in such a way that they can run tests easily without much technical stuff needed.
I've all my tests under src\test\java folder. Is there any way where I can give jar file or so to the customer and they can run tests by simply clicking on it or by hitting some command on the command line.
Please point me to documentation or video using which I can achieve this.
I've been using Visual Studio to write my Selenium tests in C#. I am able to build my project to a console application in Visual Studio that contains the required files like the Chrome webdriver. It can be run from this single application file with one click. The console then prints out if the test is a success or if their are any exceptions. You should also be able to integrate a headless browser like selenium has on their site. This would allow the test to be run with one click and no browser will pop up while the tests are running.This is all the experience I have and it has worked well for me. Hope that this information can help a little.