Я установил расширение selenium IDE для firefox, записал и создал набор тестов с 5 тестовыми наборами для тестирования 5 различных функций моего приложения. Как мне интегрировать эти тесты / набор тестов в мой azure devops конвейер? . Я имею в виду, какой тип задачи я должен добавить в свой конвейер для этой цели? Идея состоит в том, чтобы запускать этот тест автоматически при добавлении нового кода в репозиторий azure. Сохраненный набор тестов использует формат .side. Я также могу экспортировать свой набор тестов на разные языки, такие как Java + JUnit, JavaScript + Mocha et c. Теперь, как мне действовать дальше, если я хочу интегрировать эти тесты в мой azure pipe? plz help?
тестовый код, сгенерированный после экспорта в javascript moacha
// Generated by Selenium IDE
const { Builder, By, Key, until } = require('selenium-webdriver')
const assert = require('assert')
describe('Default Suite', function() {
this.timeout(30000)
let driver
let vars
beforeEach(async function() {
driver = await new Builder().forBrowser('firefox').build()
vars = {}
})
afterEach(async function() {
await driver.quit();
})
it('create new folder', async function() {
await driver.get("http://localhost:3000/")
await driver.manage().window().setRect(1382, 744)
await driver.findElement(By.css(".butt > span")).click()
await driver.findElement(By.css("input:nth-child(2)")).click()
await driver.findElement(By.css("input:nth-child(2)")).sendKeys("haleem")
await driver.findElement(By.css("input:nth-child(2)")).sendKeys(Key.ENTER)
})
it('view creation', async function() {
await driver.get("http://localhost:3000/")
await driver.manage().window().setRect(1382, 744)
await driver.findElement(By.css("#f1df1abf-ce3d-4fb9-b624-8768957d21b0 img")).click()
await driver.findElement(By.css("h6")).click()
{
const dragged = await driver.findElement(By.css(".dragObject:nth-child(8)"))
const dropped = await driver.findElement(By.css(".col-lg-12:nth-child(2) > p:nth-child(1)"))
await driver.actions({ bridge: true }).dragAndDrop(dragged, dropped).perform()
}
{
const dragged = await driver.findElement(By.css(".dragObject:nth-child(9)"))
const dropped = await driver.findElement(By.css(".dropObject"))
await driver.actions({ bridge: true }).dragAndDrop(dragged, dropped).perform()
}
await driver.findElement(By.css(".btn:nth-child(3)")).click()
await driver.findElement(By.css(".saveFormInput")).click()
await driver.findElement(By.css(".saveFormInput")).sendKeys("view sample updated")
await driver.findElement(By.css(".saveFormButton:nth-child(2)")).click()
await driver.findElement(By.css("#f1df1abf-ce3d-4fb9-b624-8768957d21b0 img")).click()
await driver.findElement(By.css("#f1df1abf-ce3d-4fb9-b624-8768957d21b0 > li img")).click()
})
it('search filter', async function() {
await driver.get("http://localhost:3000/")
await driver.manage().window().setRect(550, 692)
await driver.findElement(By.name("q")).click()
await driver.findElement(By.name("q")).sendKeys("vig")
})
it('download functionality', async function() {
await driver.get("http://localhost:3000/")
await driver.manage().window().setRect(1382, 744)
await driver.findElement(By.css("#f1df1abf-ce3d-4fb9-b624-8768957d21b0 img")).click()
await driver.findElement(By.css("#f3b0fb9b-aa2f-4c14-aa79-f85af92f0fa3 img")).click()
await driver.findElement(By.css(".btn:nth-child(2)")).click()
await driver.findElement(By.css(".dropObject")).click()
})
})
тестовый код, сгенерированный после экспорта в Java Junit
// Generated by Selenium IDE
import org.junit.Test;
import org.junit.Before;
import org.junit.After;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.core.IsNot.not;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.Alert;
import org.openqa.selenium.Keys;
import java.util.*;
import java.net.MalformedURLException;
import java.net.URL;
public class DefaultSuiteTest {
private WebDriver driver;
private Map<String, Object> vars;
JavascriptExecutor js;
@Before
public void setUp() {
driver = new FirefoxDriver();
js = (JavascriptExecutor) driver;
vars = new HashMap<String, Object>();
}
@After
public void tearDown() {
driver.quit();
}
@Test
public void createnewfolder() {
driver.get("http://localhost:3000/");
driver.manage().window().setSize(new Dimension(1382, 744));
driver.findElement(By.cssSelector(".butt > span")).click();
driver.findElement(By.cssSelector("input:nth-child(2)")).click();
driver.findElement(By.cssSelector("input:nth-child(2)")).sendKeys("haleem");
driver.findElement(By.cssSelector("input:nth-child(2)")).sendKeys(Keys.ENTER);
}
@Test
public void viewcreation() {
driver.get("http://localhost:3000/");
driver.manage().window().setSize(new Dimension(1382, 744));
driver.findElement(By.cssSelector("#f1df1abf-ce3d-4fb9-b624-8768957d21b0 img")).click();
driver.findElement(By.cssSelector("h6")).click();
{
WebElement dragged = driver.findElement(By.cssSelector(".dragObject:nth-child(8)"));
WebElement dropped = driver.findElement(By.cssSelector(".col-lg-12:nth-child(2) > p:nth-child(1)"));
Actions builder = new Actions(driver);
builder.dragAndDrop(dragged, dropped).perform();
}
{
WebElement dragged = driver.findElement(By.cssSelector(".dragObject:nth-child(9)"));
WebElement dropped = driver.findElement(By.cssSelector(".dropObject"));
Actions builder = new Actions(driver);
builder.dragAndDrop(dragged, dropped).perform();
}
driver.findElement(By.cssSelector(".btn:nth-child(3)")).click();
driver.findElement(By.cssSelector(".saveFormInput")).click();
driver.findElement(By.cssSelector(".saveFormInput")).sendKeys("view sample updated");
driver.findElement(By.cssSelector(".saveFormButton:nth-child(2)")).click();
driver.findElement(By.cssSelector("#f1df1abf-ce3d-4fb9-b624-8768957d21b0 img")).click();
driver.findElement(By.cssSelector("#f1df1abf-ce3d-4fb9-b624-8768957d21b0 > li img")).click();
}
@Test
public void searchfilter() {
driver.get("http://localhost:3000/");
driver.manage().window().setSize(new Dimension(550, 692));
driver.findElement(By.name("q")).click();
driver.findElement(By.name("q")).sendKeys("vig");
}
@Test
public void downloadfunctionality() {
driver.get("http://localhost:3000/");
driver.manage().window().setSize(new Dimension(1382, 744));
driver.findElement(By.cssSelector("#f1df1abf-ce3d-4fb9-b624-8768957d21b0 img")).click();
driver.findElement(By.cssSelector("#f3b0fb9b-aa2f-4c14-aa79-f85af92f0fa3 img")).click();
driver.findElement(By.cssSelector(".btn:nth-child(2)")).click();
driver.findElement(By.cssSelector(".dropObject")).click();
}
}