How to create scheduler to run my script every night at 12.00- Selenium WebDriver

StackOverflow https://stackoverflow.com/questions/21744795

  •  10-10-2022
  •  | 
  •  

Question

  • Currently working on Selenium WebDriver and using Java. I have a project called*Test*.
  • In that Project i have many Java Programs such as Login.java, Testing1.java etc.,.
  • The scenario is i want to run all my scripts daily morning at 12.00 a.m. Is there any possibility to create a scheduler to run my scripts automatically.
Was it helpful?

Solution

Create an testng.xml file say name as testsuite.xml.

Now follow below 2 steps:

Step 1: Create an batch file for scheduler:

use below code - modify it and paste in notepad. save the notepad in working directory as"run.bat"

set ProjectPath=C:\Selenium\Selenium_tests\DemoProject 
echo %ProjectPath%
set classpath=%ProjectPath%\bin;%ProjectPath%\Lib\*
echo %classpath%
java org.testng.TestNG %ProjectPath%\testsuite.xml
  • a) First line is for setting project path .

  • b) second line is for verifying that path is set or not.

  • c) third line is for setting classpath - lib folder contain all the jar file added to project build path

  • d) fourth line is for verifying whether classpath is set or not

  • e) fifth line is for executing xml file having details of all test.

Step 2:

  • Go to control panel.

  • Administrative tool.

  • Task scheduler and create a task which will trigger run.bat file at the time you want.

It will work.

OTHER TIPS

check with quartz scheduler.. http://quartz-scheduler.org/

I am currently working on a similar project where I have to check different web applications for their availability every ~5 minutes and report any errors via mail. I am also using TestNG ans the WebDriver together. I solved my "scheduling problem" by using the TimerTask class.

Here's a short code example: (Find more code examples here)

import java.util.Timer;
import java.util.TimerTask;

public class KeepMeAwake {

 *
 * @param args
 */
public static void main(String[] args) {

    TimerTask action = new TimerTask() {
        public void run() {
            Beep b = Beep.getInstance();
            b.beep();
        }
    };

    Timer caretaker = new Timer();
    caretaker.schedule(action, 1000, 5000);
    }
}

Since it implements Runnable, you can run multiple threads with it.

Hope that helps. If you have questions how to integrate it with your TestNG set up, just shoot.

Follow the above steps and in windows scheduler do the steps :

Creating .bat file steps

Task Scheduler in Windows > Create new Task>

'Action' settings - "Start in (Optional)" option.

Go the task properties --> Action tab --> Edit --> Fill up as below:

  1. Action: Start a program
  2. Program/script: path to your batch script e.g. C:\Users\beruk\bodo.bat
  3. Add arguments (optional): <if necessary - depending on your script>
  4. Start in (optional): Put the full path to your batch script location e.g. C:\Users\beruk\(Do not put quotes around Start In)

Then Click OK

It works for me. Good Luck!

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top