食源送系统项目的测试
一、对整个系统编写测试用例
功能测试
性能测试
兼容性测试
易用性测试
安全测试
二、接口测试
针对接口的功能测试,也就是检验接口是否按照接口文档输入输出
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;@BeforeClasspublic 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(测试类)的执行顺序,顺序完成操作