前言:

  • 之前写过的SSM项目,现在我们通过 selenium 自动化套件 + junit 单元测试框架,来对其功能进行自动化测试

  • 回顾项目功能:登录、注册、修改密码、播放音乐、搜索音乐、收藏音乐、上传音乐、删除音乐(单个删除 + 批量删除)

测试用例:

  • 测试用例我主要从:功能、性能、界面、兼容性、易用性、安全性。这六个方面进行考虑的




我主要完成的是功能的测试:

①、登录测试:

package com.muisictest;import com.common.commonDriver;
import org.junit.jupiter.api.*;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.edge.EdgeDriver;
import sun.reflect.generics.tree.Tree;import java.util.Set;
import java.util.concurrent.TimeUnit;import static org.junit.Assert.*;/*** Created with IntelliJ IDEA.* Description:* User: Lenovo* Date: 2022-11-16* Time: 13:22*/
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class LoginTest extends commonDriver {private static EdgeDriver edgeDriver = getDriver();@Test@BeforeAllstatic void start(){edgeDriver.get("http://124.222.242.143:8080/login.html");}//测试正常情况下 页面的元素是否正常@Test@Order(1)public void appearance(){String register = edgeDriver.findElement(By.cssSelector("body > section > div.register-full > div.register-right > div:nth-child(1) > a")).getText();Assertions.assertEquals(register, "注 册 »");String login = edgeDriver.findElement(By.cssSelector("body > section > div.register-full > div.register-right > div.register-in.middle > a")).getText();Assertions.assertEquals(login, "登 录 »");String csdnLink = edgeDriver.findElement(By.cssSelector("body > section > div.register-full > div.register-right > div:nth-child(3) > a")).getText();Assertions.assertEquals(csdnLink, "项目解析 (CSDN) »");String text = edgeDriver.findElement(By.cssSelector("#tourInfo")).getText();Assertions.assertEquals(text, "Tourist status");String text1 = edgeDriver.findElement(By.cssSelector("#userInfo")).getText();Assertions.assertEquals(text1, "User identity");String text2 = edgeDriver.findElement(By.cssSelector("body > section > div.header > div.logo > a")).getText();Assertions.assertEquals(text2, "MUSIC");String placeholder = edgeDriver.findElement(By.cssSelector("#newUsername")).getAttribute("placeholder");Assertions.assertEquals(placeholder, "username");String placeholder1 = edgeDriver.findElement(By.cssSelector("#newPassword")).getAttribute("placeholder");Assertions.assertEquals(placeholder1, "Password");String placeholder2 = edgeDriver.findElement(By.cssSelector("#repassword")).getAttribute("placeholder");Assertions.assertEquals(placeholder2, "Confirm the password");WebElement element = edgeDriver.findElement(By.cssSelector("#small-dialog2 > div > div > div > div > label > input[type=checkbox]"));Assertions.assertNotNull(element);String value = edgeDriver.findElement(By.cssSelector("#rsb")).getAttribute("value");Assertions.assertEquals(value, "Register");String placeholder3 = edgeDriver.findElement(By.cssSelector("#user")).getAttribute("placeholder");Assertions.assertEquals(placeholder3, "Username");String placeholder4 = edgeDriver.findElement(By.cssSelector("#password")).getAttribute("placeholder");Assertions.assertEquals(placeholder4, "Password");WebElement element1 = edgeDriver.findElement(By.cssSelector("#submit"));Assertions.assertNotNull(element1);String href = edgeDriver.findElement(By.cssSelector("body > section > div.register-full > div.register-right > div:nth-child(3) > a")).getAttribute("href");Assertions.assertEquals(href, "https://blog.csdn.net/baiyang2001/article/details/125936231?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22125936231%22%2C%22source%22%3A%22baiyang2001%22%7D&ctrtid=7kAqu");}//测试窗口@Test@Order(2)void windowSize(){edgeDriver.manage().window().maximize();appearance();edgeDriver.manage().window().minimize();appearance();}//username都是错误的 4种长度密码 都不能登录 username对 4种长度密码@ParameterizedTest@CsvSource(value = {"a,123456", "b,12345", "c,1234567", "d,12345678","e,123456", "f,12345", "g,1234567", "h,12345678"})@Order(3)void Flogin(String username, String password) throws InterruptedException {edgeDriver.findElement(By.cssSelector("body > section > div.register-full > div.register-right > div.register-in.middle > a")).click();edgeDriver.findElement(By.cssSelector("#user")).sendKeys(username);edgeDriver.findElement(By.cssSelector("#password")).sendKeys(password);edgeDriver.findElement(By.cssSelector("#submit")).click();Thread.sleep(2000);Alert alert = edgeDriver.switchTo().alert();alert.accept();edgeDriver.findElement(By.cssSelector("#small-dialog > button")).click();}//正确登录@ParameterizedTest@CsvSource(value = {"bit,123456", "cit,1234567", "dit,12345678"})@Order(4)void Tlogin(String username, String password) throws InterruptedException {String windowHandle = edgeDriver.getWindowHandle();edgeDriver.switchTo().window(windowHandle);edgeDriver.findElement(By.cssSelector("body > section > div.register-full > div.register-right > div.register-in.middle > a")).click();edgeDriver.findElement(By.cssSelector("#user")).clear();edgeDriver.findElement(By.cssSelector("#password")).clear();edgeDriver.findElement(By.cssSelector("#user")).sendKeys(username);edgeDriver.findElement(By.cssSelector("#password")).sendKeys(password);edgeDriver.findElement(By.cssSelector("#submit")).click();Thread.sleep(2000);Alert alert = edgeDriver.switchTo().alert();alert.accept();Set<String> windowHandles = edgeDriver.getWindowHandles();for(String window : windowHandles){if(window != windowHandle){edgeDriver.switchTo().window(window);break;}}String text2 = edgeDriver.findElement(By.cssSelector("#search")).getAttribute("value");Assertions.assertEquals(text2, "点击查询");String text = edgeDriver.findElement(By.xpath("/html/body/div/div[3]/div[1]/div[1]/div/h2")).getText();Assertions.assertNotNull(text);edgeDriver.navigate().back();edgeDriver.switchTo().window(windowHandle);}//账户名 密码为空@Test@Order(5)void Nlogin() throws InterruptedException {edgeDriver.findElement(By.cssSelector("body > section > div.register-full > div.register-right > div.register-in.middle > a")).click();edgeDriver.findElement(By.cssSelector("#submit")).click();Thread.sleep(2000);Alert alert = edgeDriver.switchTo().alert();alert.accept();edgeDriver.findElement(By.cssSelector("#small-dialog > button")).click();}@Test@Order(6)void ONlogin1() throws InterruptedException {Thread.sleep(1000);edgeDriver.findElement(By.cssSelector("body > section > div.register-full > div.register-right > div.register-in.middle > a")).click();edgeDriver.findElement(By.cssSelector("#user")).sendKeys("bit");edgeDriver.findElement(By.cssSelector("#submit")).click();Thread.sleep(3000);Alert alert = edgeDriver.switchTo().alert();alert.accept();edgeDriver.findElement(By.cssSelector("#small-dialog > button")).click();}@Test@Order(7)void ONlogin2() throws InterruptedException {Thread.sleep(1000);edgeDriver.findElement(By.cssSelector("body > section > div.register-full > div.register-right > div.register-in.middle > a")).click();edgeDriver.findElement(By.cssSelector("#password")).sendKeys("123456");edgeDriver.findElement(By.cssSelector("#submit")).click();Thread.sleep(3000);Alert alert = edgeDriver.switchTo().alert();alert.accept();edgeDriver.findElement(By.cssSelector("#small-dialog > button")).click();}@Test@Order(8)void changePassword() throws InterruptedException {Thread.sleep(1000);String windowHandle = edgeDriver.getWindowHandle();edgeDriver.findElement(By.cssSelector("body > section > div.register-full > div.register-right > div.register-in.middle > a")).click();edgeDriver.findElement(By.cssSelector("#small-dialog > div > div > div.login-agileits-bottom > h6 > a")).click();Set<String> windowHandles = edgeDriver.getWindowHandles();for(String window : windowHandles){if(window != windowHandle){edgeDriver.switchTo().window(window);break;}}WebElement element = edgeDriver.findElement(By.cssSelector("#usb"));Assertions.assertNotNull(element);}
}

②、注册测试:

package com.muisictest;import com.common.commonDriver;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.edge.EdgeDriver;
import static org.junit.Assert.*;/*** Created with IntelliJ IDEA.* Description:* User: Lenovo* Date: 2022-11-16* Time: 21:49*/
public class RegistTest extends commonDriver {private static EdgeDriver edgeDriver = getDriver();@Test@BeforeAllstatic void start(){edgeDriver.get("http://124.222.242.143:8080/login.html");}@Testvoid registUI(){String placeholder1 = edgeDriver.findElement(By.cssSelector("#newUsername")).getAttribute("placeholder");Assertions.assertEquals(placeholder1, "username");String placeholder2 = edgeDriver.findElement(By.cssSelector("#newPassword")).getAttribute("placeholder");Assertions.assertEquals(placeholder2, "Password");String placeholder3 = edgeDriver.findElement(By.cssSelector("#repassword")).getAttribute("placeholder");Assertions.assertEquals(placeholder3, "Confirm the password");WebElement element = edgeDriver.findElement(By.cssSelector("#small-dialog2 > div > div > div > div > label > input[type=checkbox]"));Assertions.assertNotNull(element);WebElement element1 = edgeDriver.findElement(By.cssSelector("#rsb"));Assertions.assertNotNull(element1);}//测试注册功能 现有用户 和 不存在的用户 以及两次密码不一致的用户@ParameterizedTest@CsvSource(value = {"bit,123456,123456", "by,123456,123456", "dy,123456,1234567", "cy,123,123"})void registGN(String username, String password, String newPassword) throws InterruptedException {edgeDriver.findElement(By.cssSelector("body > section > div.register-full > div.register-right > div:nth-child(1) > a")).click();edgeDriver.findElement(By.cssSelector("#newUsername")).sendKeys(username);edgeDriver.findElement(By.cssSelector("#newPassword")).sendKeys(password);edgeDriver.findElement(By.cssSelector("#repassword")).sendKeys(newPassword);edgeDriver.findElement(By.cssSelector("#rsb")).click();Thread.sleep(3000);Alert alert = edgeDriver.switchTo().alert();alert.accept();Thread.sleep(1000);edgeDriver.findElement(By.cssSelector("#small-dialog2 > button")).click();}}

③、修改密码测试:

package com.muisictest;import com.common.commonDriver;
import org.junit.jupiter.api.*;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.edge.EdgeDriver;import java.util.Set;import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;/*** Created with IntelliJ IDEA.* Description:* User: Lenovo* Date: 2022-11-16* Time: 23:10*/
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class modifyTest extends commonDriver {private static EdgeDriver edgeDriver = getDriver();@Test@BeforeAllstatic void start(){edgeDriver.get("http://124.222.242.143:8080/modif.html");}@Test@Order(1)void registUI(){WebElement element = edgeDriver.findElement(By.cssSelector("body > div > div.site-blocks-cover.overlay.aos-init.aos-animate > div > div > div > div.login-dialog > div:nth-child(1) > span"));Assertions.assertNotNull(element);WebElement element2 = edgeDriver.findElement(By.cssSelector("body > div > div.site-blocks-cover.overlay.aos-init.aos-animate > div > div > div > div.login-dialog > div:nth-child(2) > span"));Assertions.assertNotNull(element2);WebElement element3 = edgeDriver.findElement(By.cssSelector("body > div > div.site-blocks-cover.overlay.aos-init.aos-animate > div > div > div > div.login-dialog > div:nth-child(3) > span"));Assertions.assertNotNull(element3);WebElement element1 = edgeDriver.findElement(By.cssSelector("#usb"));Assertions.assertNotNull(element1);}//测试注册功能 现有用户 和 不存在的用户 以及两次密码不一致的用户@ParameterizedTest@CsvSource(value = { "by,1234567,123456", "dy,123456,1234567", "cy,123,123"})void registGN(String username, String password, String newPassword) throws InterruptedException {edgeDriver.findElement(By.cssSelector("#username")).clear();edgeDriver.findElement(By.cssSelector("#password")).clear();edgeDriver.findElement(By.cssSelector("#newPassword")).clear();edgeDriver.findElement(By.cssSelector("#username")).sendKeys(username);edgeDriver.findElement(By.cssSelector("#password")).sendKeys(password);edgeDriver.findElement(By.cssSelector("#newPassword")).sendKeys(newPassword);edgeDriver.findElement(By.cssSelector("#usb")).click();Thread.sleep(3000);Alert alert = edgeDriver.switchTo().alert();alert.accept();Thread.sleep(2000);}@ParameterizedTest@CsvSource(value = {"bit,123456,123456"})void registGY(String username, String password, String newPassword) throws InterruptedException {String windowHandle = edgeDriver.getWindowHandle();edgeDriver.findElement(By.cssSelector("#username")).sendKeys(username);edgeDriver.findElement(By.cssSelector("#password")).sendKeys(password);edgeDriver.findElement(By.cssSelector("#newPassword")).sendKeys(newPassword);edgeDriver.findElement(By.cssSelector("#usb")).click();Thread.sleep(3000);Alert alert = edgeDriver.switchTo().alert();alert.accept();Set<String> windowHandles = edgeDriver.getWindowHandles();for(String window : windowHandles){if(window != windowHandle){edgeDriver.switchTo().window(window);break;}}WebElement element = edgeDriver.findElement(By.cssSelector("body > section > div.header > div.logo > a"));assertNotNull(element);}
}

④、音乐列表页的功能测试:(搜索音乐、删除音乐、批量删除、UI测试……)

package com.muisictest;import com.common.commonDriver;
import org.junit.jupiter.api.*;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;
import org.junit.jupiter.params.provider.ValueSource;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.edge.EdgeDriver;import java.util.Set;
/*** Created with IntelliJ IDEA.* Description:* User: Lenovo* Date: 2022-11-16* Time: 23:32*/
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class MusicListTest extends commonDriver {private static EdgeDriver edgeDriver = getDriver();@Test@BeforeAllstatic void start() throws InterruptedException {edgeDriver.get("http://124.222.242.143:8080/login.html");String windowHandle = edgeDriver.getWindowHandle();edgeDriver.findElement(By.cssSelector("body > section > div.register-full > div.register-right > div.register-in.middle > a")).click();edgeDriver.findElement(By.cssSelector("#user")).sendKeys("bit");edgeDriver.findElement(By.cssSelector("#password")).sendKeys("123456");edgeDriver.findElement(By.cssSelector("#submit")).click();Thread.sleep(3000);Alert alert = edgeDriver.switchTo().alert();alert.accept();Set<String> windowHandles = edgeDriver.getWindowHandles();for(String window : windowHandles){if(window != windowHandle){edgeDriver.switchTo().window(window);break;}}}@Test@Order(1)void ListUI() throws InterruptedException {String text = edgeDriver.findElement(By.xpath("/html/body/div/div[3]/div[1]/div[1]/div/h2")).getText();Assertions.assertNotNull(text);String text1 = edgeDriver.findElement(By.cssSelector("body > div > div.site-section.bg-light > div.container > div:nth-child(2) > span > b")).getText();Assertions.assertEquals(text1, "查询歌曲:");String text2 = edgeDriver.findElement(By.cssSelector("#search")).getAttribute("value");Assertions.assertEquals(text2, "点击查询");String value = edgeDriver.findElement(By.cssSelector("#delete")).getText();Assertions.assertEquals(value, "删除选中");}//模糊查询 和 全值匹配@ParameterizedTest@ValueSource(strings = {"云", "云烟成雨", "雨"})@Order(2)void search(String name) throws InterruptedException {//        String text3 = edgeDriver.findElement(By.cssSelector("body > div > div.site-section.bg-light > div.container > div.row.mb-5.aos-init.aos-animate > div > h2")).getText();
//        Assertions.assertEquals(text3, "Music list");edgeDriver.findElement(By.cssSelector("#musictitle")).clear();edgeDriver.findElement(By.cssSelector("#musictitle")).sendKeys(name);edgeDriver.findElement(By.cssSelector("#search")).click();String text = edgeDriver.findElement(By.cssSelector("#MusicList > div:nth-child(1) > div > h3")).getText();Assertions.assertEquals(text, "云烟成雨");Thread.sleep(1000);//检测一下搜索后的 UIString text1 = edgeDriver.findElement(By.cssSelector("#MusicList > div:nth-child(1) > div > input:nth-child(4)")).getAttribute("value");Assertions.assertEquals(text1, "收藏音乐");String value = edgeDriver.findElement(By.cssSelector("#MusicList > div:nth-child(1) > div > input:nth-child(5)")).getAttribute("value");Assertions.assertEquals(value, "删除音乐");WebElement element = edgeDriver.findElement(By.cssSelector("#player2"));Assertions.assertNotNull(element);}@Test@Order(5)void loveMusic() throws InterruptedException {edgeDriver.findElement(By.cssSelector("#MusicList > div:nth-child(1) > div > input:nth-child(4)")).click();Thread.sleep(3000);Alert alert = edgeDriver.switchTo().alert();alert.accept();edgeDriver.findElement(By.cssSelector("body > div > header > div > div > div.col-9.aos-init.aos-animate > nav > div > a > span")).click();edgeDriver.findElement(By.cssSelector("body > div > div.site-mobile-menu > div.site-mobile-menu-body > ul > li:nth-child(4) > a")).click();Thread.sleep(3000);String text = edgeDriver.findElement(By.cssSelector("#MusicList > div > div > h3")).getAttribute("innerText");Assertions.assertEquals(text, "云烟成雨");}@Test@Order(3)void deleteMusic() throws InterruptedException {edgeDriver.navigate().refresh();Thread.sleep(1000);edgeDriver.findElement(By.cssSelector("#MusicList > div:nth-child(2) > div > input:nth-child(5)")).click();Thread.sleep(3000);Alert alert = edgeDriver.switchTo().alert();alert.accept();Thread.sleep(3000);try {WebElement element = edgeDriver.findElement(By.cssSelector("#MusicList > div:nth-child(3) > div > h3"));}catch (Exception e){System.out.println("删除成功");}}@Test@Order(4)void deleteAllMusic() throws InterruptedException {edgeDriver.navigate().refresh();edgeDriver.findElement(By.cssSelector("#\\34 2")).click();edgeDriver.findElement(By.cssSelector("#delete")).click();Thread.sleep(3000);Alert alert = edgeDriver.switchTo().alert();alert.accept();Thread.sleep(1000);try {edgeDriver.findElement(By.cssSelector("#MusicList > div:nth-child(2) > div > h3"));}catch (Exception e){System.out.println("通过勾选框删除成功");}}}

⑤、上传文件测试:(从上传文件的多种情况测试,还有文件的格式情况考虑)

package com.muisictest;import com.common.commonDriver;
import org.junit.jupiter.api.*;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.edge.EdgeDriver;import java.util.Set;/*** Created with IntelliJ IDEA.* Description:* User: Lenovo* Date: 2022-11-17* Time: 10:09*/
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class FileUploadTest extends commonDriver {private static EdgeDriver edgeDriver = getDriver();@Test@BeforeAllstatic void start() throws InterruptedException {edgeDriver.get("http://124.222.242.143:8080/login.html");String windowHandle = edgeDriver.getWindowHandle();edgeDriver.findElement(By.cssSelector("body > section > div.register-full > div.register-right > div.register-in.middle > a")).click();edgeDriver.findElement(By.cssSelector("#user")).sendKeys("bit");edgeDriver.findElement(By.cssSelector("#password")).sendKeys("123456");edgeDriver.findElement(By.cssSelector("#submit")).click();Thread.sleep(3000);Alert alert = edgeDriver.switchTo().alert();alert.accept();Set<String> windowHandles = edgeDriver.getWindowHandles();for(String window : windowHandles){if(window != windowHandle){edgeDriver.switchTo().window(window);break;}}}@Test@Order(1)void uploadUI() throws InterruptedException {edgeDriver.findElement(By.cssSelector("body > div > header > div > div > div.col-9.aos-init.aos-animate > nav > div > a > span")).click();edgeDriver.findElement(By.cssSelector("body > div > div.site-mobile-menu > div.site-mobile-menu-body > ul > li:nth-child(3) > a")).click();Thread.sleep(3000);String text = edgeDriver.findElement(By.cssSelector("#username")).getAttribute("placeholder");Assertions.assertEquals(text, "请输入歌手名");String text1 = edgeDriver.findElement(By.cssSelector("body > div > div.site-section.bg-light > div.login-container > form > div > div:nth-child(1) > span")).getText();Assertions.assertEquals(text1, "文件上传");}//成功上传@Testvoid uploadFile1() throws InterruptedException {edgeDriver.findElement(By.cssSelector("body > div > header > div > div > div.col-9.aos-init.aos-animate > nav > div > a > span")).click();edgeDriver.findElement(By.cssSelector("body > div > div.site-mobile-menu > div.site-mobile-menu-body > ul > li:nth-child(3) > a")).click();Thread.sleep(3000);edgeDriver.findElement(By.cssSelector("body > div > div.site-section.bg-light > div.login-container > form > div > div:nth-child(1) > input[type=file]")).sendKeys("C:\\Users\\Lenovo\\Music\\起风了.mp3");edgeDriver.findElement(By.cssSelector("#username")).sendKeys("周深");edgeDriver.findElement(By.cssSelector("#submit")).click();try{String text = edgeDriver.findElement(By.cssSelector("#search")).getAttribute("value");Assertions.assertEquals(text, "点击查询");}catch (Exception e){System.out.println("已用同名同歌手歌曲,上传失败");}}//同名不同歌手@Testvoid uploadFile2() throws InterruptedException {edgeDriver.findElement(By.cssSelector("body > div > header > div > div > div.col-9.aos-init.aos-animate > nav > div > a > span")).click();edgeDriver.findElement(By.cssSelector("body > div > div.site-mobile-menu > div.site-mobile-menu-body > ul > li:nth-child(3) > a")).click();Thread.sleep(3000);edgeDriver.findElement(By.cssSelector("body > div > div.site-section.bg-light > div.login-container > form > div > div:nth-child(1) > input[type=file]")).sendKeys("C:\\Users\\Lenovo\\Music\\起风了.mp3");edgeDriver.findElement(By.cssSelector("#username")).sendKeys("买辣椒不用券");edgeDriver.findElement(By.cssSelector("#submit")).click();try{String text = edgeDriver.findElement(By.cssSelector("#search")).getAttribute("value");Assertions.assertEquals(text, "点击查询");}catch (Exception e){System.out.println("已用同名歌曲,上传失败");}}//不传文件 报错@Testvoid uploadFile3() throws InterruptedException {edgeDriver.findElement(By.cssSelector("body > div > header > div > div > div.col-9.aos-init.aos-animate > nav > div > a > span")).click();edgeDriver.findElement(By.cssSelector("body > div > div.site-mobile-menu > div.site-mobile-menu-body > ul > li:nth-child(3) > a")).click();Thread.sleep(3000);edgeDriver.findElement(By.cssSelector("#username")).sendKeys("周深");edgeDriver.findElement(By.cssSelector("#submit")).click();try{String text = edgeDriver.findElement(By.cssSelector("#search")).getAttribute("value");Assertions.assertEquals(text, "点击查询");}catch (Exception e){System.out.println("上传文件失败");edgeDriver.navigate().back();}}//上传的不是mp3文件@Testvoid uploadFile4() throws InterruptedException {Thread.sleep(1000);edgeDriver.findElement(By.cssSelector("body > div > header > div > div > div.col-9.aos-init.aos-animate > nav > div > a > span")).click();edgeDriver.findElement(By.cssSelector("body > div > div.site-mobile-menu > div.site-mobile-menu-body > ul > li:nth-child(3) > a")).click();Thread.sleep(3000);edgeDriver.findElement(By.cssSelector("body > div > div.site-section.bg-light > div.login-container > form > div > div:nth-child(1) > input[type=file]")).sendKeys("C:\\Users\\Lenovo\\Music\\路过人间.txt");edgeDriver.findElement(By.cssSelector("#username")).sendKeys("房东的猫-胡海泉");edgeDriver.findElement(By.cssSelector("#submit")).click();try{String text = edgeDriver.findElement(By.cssSelector("#search")).getAttribute("value");Assertions.assertEquals(text, "点击查询");}catch (Exception e){System.out.println("文件格式错误");edgeDriver.navigate().back();}}//上传修改后缀名得到的 MP3 文件 格式错误@Testvoid uploadFile5() throws InterruptedException {Thread.sleep(1000);edgeDriver.findElement(By.cssSelector("body > div > header > div > div > div.col-9.aos-init.aos-animate > nav > div > a > span")).click();edgeDriver.findElement(By.cssSelector("body > div > div.site-mobile-menu > div.site-mobile-menu-body > ul > li:nth-child(3) > a")).click();Thread.sleep(3000);edgeDriver.findElement(By.cssSelector("body > div > div.site-section.bg-light > div.login-container > form > div > div:nth-child(1) > input[type=file]")).sendKeys("C:\\Users\\Lenovo\\Music\\城市动物园.mp3");edgeDriver.findElement(By.cssSelector("#username")).sendKeys("房东的猫");edgeDriver.findElement(By.cssSelector("#submit")).click();try{String text = edgeDriver.findElement(By.cssSelector("#search")).getAttribute("value");Assertions.assertEquals(text, "点击查询");}catch (Exception e){System.out.println("文件格式错误");}}
}

⑥、退出测试:分别从音乐播放页、收藏页、上传页测试退出

package com.muisictest;import com.common.commonDriver;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.edge.EdgeDriver;import java.util.Set;/*** Created with IntelliJ IDEA.* Description:* User: Lenovo* Date: 2022-11-17* Time: 11:14*/
public class ExitTest extends commonDriver {private static EdgeDriver edgeDriver = getDriver();@Test@BeforeAllstatic void start() throws InterruptedException {Thread.sleep(1000);edgeDriver.get("http://124.222.242.143:8080/login.html");}//从列表页 退出@Testvoid ListExit() throws InterruptedException {String windowHandle = edgeDriver.getWindowHandle();edgeDriver.findElement(By.cssSelector("body > section > div.register-full > div.register-right > div.register-in.middle > a")).click();edgeDriver.findElement(By.cssSelector("#user")).sendKeys("bit");edgeDriver.findElement(By.cssSelector("#password")).sendKeys("123456");edgeDriver.findElement(By.cssSelector("#submit")).click();Thread.sleep(3000);Alert alert = edgeDriver.switchTo().alert();alert.accept();Set<String> windowHandles = edgeDriver.getWindowHandles();for(String window : windowHandles){if(window != windowHandle){edgeDriver.switchTo().window(window);break;}}edgeDriver.findElement(By.cssSelector("body > div > header > div > div > div.col-9.aos-init.aos-animate > nav > div > a > span")).click();edgeDriver.findElement(By.cssSelector("#exit")).click();try{WebElement element = edgeDriver.findElement(By.cssSelector("body > section > div.header > div.logo > a"));Assertions.assertNotNull(element);}catch (Exception e){System.out.println("退出失败");}}//从收藏页 退出@Testvoid LoveExit() throws InterruptedException {String windowHandle = edgeDriver.getWindowHandle();edgeDriver.findElement(By.cssSelector("body > section > div.register-full > div.register-right > div.register-in.middle > a")).click();edgeDriver.findElement(By.cssSelector("#user")).sendKeys("bit");edgeDriver.findElement(By.cssSelector("#password")).sendKeys("123456");edgeDriver.findElement(By.cssSelector("#submit")).click();Thread.sleep(3000);Alert alert = edgeDriver.switchTo().alert();alert.accept();Set<String> windowHandles = edgeDriver.getWindowHandles();for(String window : windowHandles){if(window != windowHandle){edgeDriver.switchTo().window(window);break;}}edgeDriver.findElement(By.cssSelector("body > div > header > div > div > div.col-9.aos-init.aos-animate > nav > div > a > span")).click();edgeDriver.findElement(By.cssSelector("body > div > div.site-mobile-menu > div.site-mobile-menu-body > ul > li:nth-child(4) > a")).click();Thread.sleep(1000);edgeDriver.findElement(By.cssSelector("body > div > header > div > div > div.col-9.aos-init.aos-animate > nav > div > a > span")).click();edgeDriver.findElement(By.cssSelector("body > div > div.site-mobile-menu > div.site-mobile-menu-body > ul > li:nth-child(5) > a")).click();try{edgeDriver.navigate().refresh();WebElement element = edgeDriver.findElement(By.cssSelector("body > section > div.header > div.logo > a"));Assertions.assertNotNull(element);}catch (Exception e){System.out.println("退出失败");}}//从上传页 退出@Testvoid UploadExit() throws InterruptedException {String windowHandle = edgeDriver.getWindowHandle();edgeDriver.findElement(By.cssSelector("body > section > div.register-full > div.register-right > div.register-in.middle > a")).click();edgeDriver.findElement(By.cssSelector("#user")).sendKeys("bit");edgeDriver.findElement(By.cssSelector("#password")).sendKeys("123456");edgeDriver.findElement(By.cssSelector("#submit")).click();Thread.sleep(3000);Alert alert = edgeDriver.switchTo().alert();alert.accept();Set<String> windowHandles = edgeDriver.getWindowHandles();for(String window : windowHandles){if(window != windowHandle){edgeDriver.switchTo().window(window);break;}}edgeDriver.findElement(By.cssSelector("body > div > header > div > div > div.col-9.aos-init.aos-animate > nav > div > a > span")).click();edgeDriver.findElement(By.cssSelector("body > div > div.site-mobile-menu > div.site-mobile-menu-body > ul > li:nth-child(3) > a")).click();Thread.sleep(1000);edgeDriver.findElement(By.cssSelector("body > div > header > div > div > div.col-9.aos-init.aos-animate > nav > div > a > span")).click();edgeDriver.findElement(By.cssSelector("body > div > div.site-mobile-menu > div.site-mobile-menu-body > ul > li:nth-child(5) > a")).click();try{edgeDriver.navigate().refresh();WebElement element = edgeDriver.findElement(By.cssSelector("body > section > div.header > div.logo > a"));Assertions.assertNotNull(element);}catch (Exception e){System.out.println("退出失败");}}}

其他工具类:

①、创建驱动:

package com.common;import org.openqa.selenium.edge.EdgeDriver;import java.time.Duration;/*** Created with IntelliJ IDEA.* Description:* User: Lenovo* Date: 2022-11-16* Time: 14:11*/
//建立浏览器驱动
public class commonDriver {private static EdgeDriver edgeDriver;public static EdgeDriver getDriver(){if(edgeDriver == null){edgeDriver = new EdgeDriver();//添加隐式等待edgeDriver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));}return edgeDriver;}}

②、关闭驱动:

package com.muisictest;import com.common.commonDriver;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.edge.EdgeDriver;/*** Created with IntelliJ IDEA.* Description:* User: Lenovo* Date: 2022-11-16* Time: 15:55*/public class driverQuitTest extends commonDriver {private static EdgeDriver edgeDriver = getDriver();@Testvoid driverQuit(){edgeDriver.quit();}
}

③、通过 suit 套件执行所有的测试类

package com.muisictest;import org.junit.platform.suite.api.SelectClasses;
import org.junit.platform.suite.api.Suite;/*** Created with IntelliJ IDEA.* Description:* User: Lenovo* Date: 2022-11-16* Time: 16:01*/
@Suite
@SelectClasses({LoginTest.class,RegistTest.class,modifyTest.class,MusicListTest.class,FileUploadTest.class,ExitTest.class, driverQuitTest.class})
public class RunSuit {}

最后的执行结果:全员通过,测试完毕

SSM框架项目 —— 在线音乐播放器(测试)相关推荐

  1. Andriod小项目——在线音乐播放器

    Andriod小项目--在线音乐播放器 转载请注明:http://blog.csdn.net/sunkes/article/details/51189189 Android在线音乐播放器 从大一开始就 ...

  2. 【Java项目实战】在线音乐播放器(从需求到产品完整解析)

    准备工作必看:[Java项目实战]在线音乐播放器(前期准备) 核心功能 登录.注册 上传音乐 删除某一个音乐信息 删除选中的音乐信息 查询音乐(包含查找指定/模糊匹配的音乐) 添加音乐到"喜 ...

  3. 【Spring Boot项目】个人在线音乐播放器

    文章目录 1. 项目简介 2. 数据库表的设计 3. 拦截器及返回数据格式 4. 注册功能 5. 登陆功能 6. 音乐列表相关业务 6.1 查询功能 6.2 上传音乐 6.3 播放音乐 6.4 收藏音 ...

  4. QT小项目-QT在线音乐播放器

    QT在线音乐播放器 先上几张音乐播放器的图片 具体实现及部分代码 后面还有好多就不一一例举了 先上几张音乐播放器的图片 (主页图片来源网络) 具体实现及部分代码 搜索歌曲和获取歌曲具体信息的URL,这 ...

  5. [MAUI 项目实战] 音乐播放器(一):概述与架构

    系列文章将分步解读音乐播放器核心业务及代码: [MAUI 项目实战] 音乐播放器(一):概述与架构 [MAUI 项目实战] 音乐播放器(二):播放内核 [MAUI 项目实战] 音乐播放器(三):界面交 ...

  6. 在线音乐播放器的推荐机制

    对于我这样一个音乐控来说,学习工作时没有音乐是万万不行的.在网易云音乐云音乐面世之前,我总是在QQ音乐,百度音乐等播放器之间徘徊,当时也不够文艺,不知道豆瓣FM的存在. 第一次接触云音乐被其吸引的原因 ...

  7. 在线音乐播放器:接口测试

    文章目录 项目需求 测试用例设计 执行接口测试用例 配置Postman测试环境 创建一个在线音乐播放器的测试集 编辑测试用例请求 用户注册 用户登录 上传音乐 查询音乐 收藏音乐 取消收藏 播放歌曲 ...

  8. 【在线音乐播放器系统测试用例】

    在线音乐播放器项目测试

  9. python播放在线音乐_Python实现在线音乐播放器

    最近这几天,学习了一下python,对于爬虫比较感兴趣,就做了一个简单的爬虫项目,使用Python的库Tkinsert做了一个界面,感觉这个库使用起来还是挺方便的,音乐的数据来自网易云音乐的一个接口, ...

最新文章

  1. java linkedlist二维,如何在Java中制作二维LinkedList?
  2. android CMake开发
  3. 利用CodeIgniter中的Email类发邮件
  4. ffmpeg 播放器原理
  5. SourceInsight 4.0 之四 项目配置(库文件引入、配置宏添加、快捷键修改等)
  6. Java黑皮书课后题第4章:*4.18(学生的专业和年级)编程一个程序,提示用户输入两个字符,显示这两个字符代表的专业以及年级,第一个字符表示专业,第二个是一个数字字符1、2、3、4,输出对应结果
  7. linux服务配置大全 fedora 8 ftp 百度文库,Linux下VSFTP配置全攻略
  8. android数码管字体,matplotlib绘图时显示额外的“figure”浮窗
  9. 菜鸟网络后端java 一面总结
  10. 部署python爬虫_爬虫项目部署
  11. 这样设计算机屏幕保护,屏幕保护程序怎么设置图文教程
  12. h桥程序控制c语言,H桥电路原理及直流电机驱动编程
  13. Mac OS 任意显示器 开启HiDPI方法
  14. 解决pgAdmin4启动失败方法
  15. 计算机毕业设计、计算机课程设计怎么做?计算机设计1900套来帮你!
  16. git color 让git有颜色
  17. 打印Excel工作表时忽略打印区域
  18. JETSON AGX XAVIER GMSL2接口相机驱动
  19. 当区块链是数字经济和数字社会的基石时,我们如何发现机遇?
  20. 果壳网(guokr.com)发布了

热门文章

  1. flink报错:No new data sinks have been defined since the last execution
  2. 怎么理解trados 应用中的几个功能
  3. 确定你的台式计算机支持的内存类型,怎么查看电脑主板支持多大内存?教你看主板支持多大内存2种方法...
  4. 转行IT要趁早,多迪教育新就业数据告诉你真相
  5. 如何使用 SetPrinter 修改打印机设置
  6. vue脚手架 打包压缩代码
  7. VBA中控件MSCHART 的曲线或柱状图上显示值
  8. 如何模拟高铁站售票窗口,开启三个窗口进行售票,总票数100?
  9. 挣值管理(PV、EV、AC、SV、CV、SPI、CPI)记忆之我见
  10. ORA-00069: cannot acquire lock