Нужна помощь в автоматизации тестирования многофакторной аутентификации?

Вот простая демонстрация, которая позволит вам узнать, как использовать java.util.Timer.

import java.util.Timer;
import java.util.TimerTask;
import java.util.Scanner;
class Tester 
{
    static long i = 0;
    public static void main(String[] args) throws Exception
    {
        Scanner scanner = new Scanner(System.in);
        System.out.println("You have only 10 seconds to find the result");
        System.out.println("What is the value of : 111111 X 111111 ");
        Timer timer = new Timer("Timer");
        timer.schedule(new TimerTask()
        {
            public void run()
            {
                if (i == 12345654321L)
                {
                    System.out.println("Congrats!! you guessed the write answer :)");
                }
                else
                {
                    System.out.println("Sorry Time is over. You couldn't guess the correct answer.");
                }
                System.exit(0);
            }
        },10 * 1000 , 1);
        while (true)
        {
            i = scanner.nextLong(); 
            if ( i == 12345654321L)
            {
                System.out.println("Congrats!! you guessed the write answer :)");
                System.exit(0);
            }
            else
            {
                System.out.println("Try next  guess :");
            }
        }
    }
}

EDIT

Так как я не знаю, t иметь ваш весь код, поэтому я размещаю здесь решение для вашего ответа по моему основному предположению. Не используйте Thread. Вместо этого используйте java.util.Timer. Ваш код будет выглядеть следующим образом:

static String input=" ";//created a static variable input to take input 
public static void main(String st[])
{
    Timer timer = new Timer("Timer");
    timer.schedule(new TimerTask()
    {
        public void run()
        {
            if (test.CheckGame(input))
            {
                System.out.println("Congrats!! you guessed the write answer :)");
            }
            else
            {
                System.out.println("Sorry Time is over. You couldn't guess the correct answer.");
            }
            System.exit(0);
        }
    },10 * 1000 , 1);//waits for 10 seconds
    while (true) 
    {
        System.out.print("Guess a word on the board! ");
        input = scan.next();
        if(test.CheckGame(input))
        {
            System.out.print("Good job! ");
            System.exit(0);
        }
        else
        {
            System.out.println("Bad Guess. Try again ");
        }
    }
}

0
задан Indrajith Ekanayake 7 March 2019 в 16:00
поделиться

1 ответ

Я думаю, что многопоточность будет ответом для тестового примера 2, поэтому вы можете запускать два браузера одновременно. Пример:

Класс потока

public class BrowserThread implements Runnable {
    public void run() {
          WebDriver driver = new ChromeDriver();
          // do authentication steps
          // verify if successful
    }
}

Тогда ваша основная функция

Thread browserOne = new Thread(new BrowserThread(), "BrowserOneThread");
browserOne.start();
Thread browserTwo = new Thread(new BrowserThread(), "BrowserTwoThread");
browserTwo.start();

Это просто очень простой пример, чтобы показать вам, как это работает в целом. Если вы хотите больше контроля для каждого выполнения потока, я бы посоветовал посмотреть на java.util.concurrent.Future

0
ответ дан Aldo Suwandi 7 March 2019 в 16:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: