针对接口的功能测试,也就是检验接口是否按照接口文档输入输出
2.1 使用Postman发送HTTP请求
2.2 使用Java + TestNG 编写自动化测试用例
package com.sky.test; import org.junit.jupiter.api.Order; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.edge.EdgeDriver; import org.openqa.selenium.edge.EdgeOptions; import org.testng.annotations.BeforeClass; import org.testng.annotations.BeforeSuite; import org.testng.annotations.Test; import java.util.concurrent.TimeUnit; public class LoginAndOut { public static WebDriver driver; @BeforeClass @Order(1) public void openBrowser(){ System.setProperty("webdriver.edge.driver" , "D:/EdgeDriver/msedgedriver.exe"); //打开浏览器 EdgeOptions options = new EdgeOptions(); options.addArguments("--remote-allow-origins=*"); driver = new EdgeDriver(options); System.out.println(driver); driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); } /** * 登录,登出 * @throws InterruptedException */ @org.testng.annotations.Test @Order(2) public void Login() throws InterruptedException { // driver = new E; driver.get("http://www.localhost:81"); driver.manage().window().maximize(); driver.findElement(By.xpath("//input[@placeholder='账号']")).clear(); driver.findElement(By.xpath("//input[@placeholder='账号']")).sendKeys("admin"); Thread.sleep(1000); driver.findElement(By.xpath("//input[@placeholder='密码']")).clear(); driver.findElement(By.xpath("//input[@placeholder='密码']")).sendKeys("123456"); Thread.sleep(1000); driver.findElement(By.xpath("//span[text()='登录']")).click(); Thread.sleep(1000); driver.findElement(By.xpath("/html/body/div[2]/div/div[2]")).click(); driver.findElement(By.xpath("//span[contains(text(),'管理员')]")).click(); Thread.sleep(2000); driver.findElement(By.xpath("//div[@class='userList']/p[@class='outLogin']")).click(); Thread.sleep(1000); driver.findElement(By.xpath("//span[text()='登录']")).click(); } }
package com.sky.test; import net.sf.jsqlparser.statement.select.KSQLWindow; import org.junit.jupiter.api.Order; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.edge.EdgeDriver; import org.openqa.selenium.edge.EdgeOptions; import org.openqa.selenium.support.ui.Select; import org.openqa.selenium.support.ui.WebDriverWait; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import java.util.concurrent.TimeUnit; public class homepage { public WebDriver driver; @BeforeClass public void openBrowser() { driver = LoginAndOut.driver; } /** * 登录-菜品管理-添加菜品 */ @Test @Order(3) public void saveDish() throws InterruptedException { driver.findElement(By.xpath("//div/a[@href='#/dish']")).click(); driver.findElement(By.xpath("//*[@id=\"app\"]/div/div[2]/section/div/div/div[1]/div[4]/button/span")).click(); driver.findElement(By.xpath("//input[@placeholder='请填写菜品名称']")).clear(); Thread.sleep(1000); driver.findElement(By.xpath("//input[@placeholder='请填写菜品名称']")).sendKeys("selenium"); driver.findElement(By.xpath("//input[@placeholder='请设置菜品价格']")).clear(); Thread.sleep(1000); driver.findElement(By.xpath("//input[@placeholder='请设置菜品价格']")).sendKeys("888"); driver.findElement(By.xpath("//input[@placeholder='请选择菜品分类']")).click(); Thread.sleep(1000); WebElement element = driver.findElement(By.xpath("//ul[@class='el-scrollbar__view el-select-dropdown__list']")); driver.findElement(By.xpath("//ul[@class='el-scrollbar__view el-select-dropdown__list']/li/span")).click(); driver.findElement(By.xpath("//span[@class='addBut']")).click(); driver.findElement(By.xpath("//input[@placeholder='请选择口味']")).click(); driver.findElement(By.xpath("//input[@name='file']")).sendKeys("C:\\Users\\FK\\Desktop\\HTML+CSS+JavaScript\\fengjing1.jpg"); driver.findElement(By.xpath("//textarea")).sendKeys("haochi"); driver.findElement(By.xpath("//span[contains(text(), '保存')]")).click(); } }
生成对应类的xml文件,指定每个test(测试类)的执行顺序,顺序完成操作
上一篇:数据同步策略概览