设计测试用例
主要功能测试
登录测试
注册测试
自动化测试
工具:Selenium,JMeter,谷歌浏览器
方法:使用Selenium中的css选择器来进行元素的定位
创建驱动程序(连接谷歌浏览器并进行截图)
package common;
import io.github.bonigarcia.wdm.WebDriverManager;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.edge.EdgeOptions;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.time.Duration;
public class Utils {
public static WebDriver driver;
public static WebDriver createDriver(){
if (driver==null){
WebDriverManager.chromedriver().setup();
ChromeOptions options=new ChromeOptions();
options.addArguments("--remote-allow-origins=*");
driver=new ChromeDriver(options);
// WebDriverManager.edgedriver().setup();
// EdgeOptions options=new EdgeOptions();
// options.addArguments("--remote-allow-origins=*");
// EdgeDriver driver=new EdgeDriver(options);
// 等待
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(2));
}
return driver;
}
public Utils(String url){
driver=createDriver();
driver.get(url);
}
public void getScreenShot(String str) throws IOException {
SimpleDateFormat sim1 = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sim2 = new SimpleDateFormat("HHmmss");
String dirTime = sim1.format(System.currentTimeMillis());
String fileTime = sim2.format(System.currentTimeMillis());
//./src/test/image/2025-01-01/test01-174530.png
String filename ="./src/test/image/"+ dirTime +"/" + str + "-" + fileTime+".png";
File srcFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
//srcFile放到指定位置
FileUtils.copyFile(srcFile,new File(fileTime));
}
}
登录界面测试
package test;
import common.Utils;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import java.io.IOException;
public class Login extends Utils {
public static String url="http://159.75.202.189:8080/login.html";
public Login() {
super(url);
}
public void loginSuc() throws IOException, InterruptedException {
driver.findElement(By.cssSelector("#username")).clear();
driver.findElement(By.cssSelector("#password")).clear();
// 登入
driver.findElement(By.cssSelector("#username")).sendKeys("zhangsan");
driver.findElement(By.cssSelector("#password")).sendKeys("123");
driver.findElement(By.cssSelector("#submit")).click();
Thread.sleep(3000);
Alert alert=driver.switchTo().alert();
alert.accept();
getScreenShot(getClass().getName());
}
}
登录成功效果展示
登录失败效果展示
注册的自动化测试代码
package test;
import common.Utils;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import java.io.IOException;
public class Register extends Utils {
public static String url="http://159.75.202.189:8080/register.html";
public Register() {
super(url);
}
public void registerSun() throws IOException {
driver.findElement(By.cssSelector("#username")).sendKeys("xin");
driver.findElement(By.cssSelector("#password")).sendKeys("123");
driver.findElement(By.cssSelector("#submit")).click();
// Alert alert=driver.switchTo().alert();
// alert.accept();
getScreenShot(getClass().getName());
}
}
注册成功效果展示
注册失败效果展示
聊天的自动化测试代码
package test;
import common.Utils;
import org.openqa.selenium.By;
public class SendMessage extends Utils {
public static String url="http://159.75.202.189:8080/client.html";
public SendMessage() {
super(url);
}
public void SendMessageSun() throws InterruptedException {
//driver.findElement(By.cssSelector("body > div.client-container > div > div.left > div.tab > div.tab-friend")).click();
driver.findElement(By.cssSelector("#session-list > li.selected")).click();
Thread.sleep(3000);
driver.findElement(By.cssSelector("body > div.client-container > div > div.right > textarea")).sendKeys("你好");
driver.findElement(By.cssSelector("body > div.client-container > div > div.right > div.ctrl > button")).click();
}
}
消息传输成功效果展示
消息传输失败效果展示
好友列表测试自动化代码
//driver.findElement(By.cssSelector("body > div.client-container > div > div.left > div.tab > div.tab-friend")).click();
driver.findElement(By.cssSelector("#session-list > li.selected")).click();
Thread.sleep(3000);
driver.findElement(By.cssSelector("body > div.client-container > div > div.right > textarea")).sendKeys("你好");
driver.findElement(By.cssSelector("body > div.client-container > div > div.right > div.ctrl > button")).click();