SSM框架项目 —— 在线音乐播放器(测试)
前言:
之前写过的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框架项目 —— 在线音乐播放器(测试)相关推荐
- Andriod小项目——在线音乐播放器
Andriod小项目--在线音乐播放器 转载请注明:http://blog.csdn.net/sunkes/article/details/51189189 Android在线音乐播放器 从大一开始就 ...
- 【Java项目实战】在线音乐播放器(从需求到产品完整解析)
准备工作必看:[Java项目实战]在线音乐播放器(前期准备) 核心功能 登录.注册 上传音乐 删除某一个音乐信息 删除选中的音乐信息 查询音乐(包含查找指定/模糊匹配的音乐) 添加音乐到"喜 ...
- 【Spring Boot项目】个人在线音乐播放器
文章目录 1. 项目简介 2. 数据库表的设计 3. 拦截器及返回数据格式 4. 注册功能 5. 登陆功能 6. 音乐列表相关业务 6.1 查询功能 6.2 上传音乐 6.3 播放音乐 6.4 收藏音 ...
- QT小项目-QT在线音乐播放器
QT在线音乐播放器 先上几张音乐播放器的图片 具体实现及部分代码 后面还有好多就不一一例举了 先上几张音乐播放器的图片 (主页图片来源网络) 具体实现及部分代码 搜索歌曲和获取歌曲具体信息的URL,这 ...
- [MAUI 项目实战] 音乐播放器(一):概述与架构
系列文章将分步解读音乐播放器核心业务及代码: [MAUI 项目实战] 音乐播放器(一):概述与架构 [MAUI 项目实战] 音乐播放器(二):播放内核 [MAUI 项目实战] 音乐播放器(三):界面交 ...
- 在线音乐播放器的推荐机制
对于我这样一个音乐控来说,学习工作时没有音乐是万万不行的.在网易云音乐云音乐面世之前,我总是在QQ音乐,百度音乐等播放器之间徘徊,当时也不够文艺,不知道豆瓣FM的存在. 第一次接触云音乐被其吸引的原因 ...
- 在线音乐播放器:接口测试
文章目录 项目需求 测试用例设计 执行接口测试用例 配置Postman测试环境 创建一个在线音乐播放器的测试集 编辑测试用例请求 用户注册 用户登录 上传音乐 查询音乐 收藏音乐 取消收藏 播放歌曲 ...
- 【在线音乐播放器系统测试用例】
在线音乐播放器项目测试
- python播放在线音乐_Python实现在线音乐播放器
最近这几天,学习了一下python,对于爬虫比较感兴趣,就做了一个简单的爬虫项目,使用Python的库Tkinsert做了一个界面,感觉这个库使用起来还是挺方便的,音乐的数据来自网易云音乐的一个接口, ...
最新文章
- java linkedlist二维,如何在Java中制作二维LinkedList?
- android CMake开发
- 利用CodeIgniter中的Email类发邮件
- ffmpeg 播放器原理
- SourceInsight 4.0 之四 项目配置(库文件引入、配置宏添加、快捷键修改等)
- Java黑皮书课后题第4章:*4.18(学生的专业和年级)编程一个程序,提示用户输入两个字符,显示这两个字符代表的专业以及年级,第一个字符表示专业,第二个是一个数字字符1、2、3、4,输出对应结果
- linux服务配置大全 fedora 8 ftp 百度文库,Linux下VSFTP配置全攻略
- android数码管字体,matplotlib绘图时显示额外的“figure”浮窗
- 菜鸟网络后端java 一面总结
- 部署python爬虫_爬虫项目部署
- 这样设计算机屏幕保护,屏幕保护程序怎么设置图文教程
- h桥程序控制c语言,H桥电路原理及直流电机驱动编程
- Mac OS 任意显示器 开启HiDPI方法
- 解决pgAdmin4启动失败方法
- 计算机毕业设计、计算机课程设计怎么做?计算机设计1900套来帮你!
- git color 让git有颜色
- 打印Excel工作表时忽略打印区域
- JETSON AGX XAVIER GMSL2接口相机驱动
- 当区块链是数字经济和数字社会的基石时,我们如何发现机遇?
- 果壳网(guokr.com)发布了
热门文章
- flink报错:No new data sinks have been defined since the last execution
- 怎么理解trados 应用中的几个功能
- 确定你的台式计算机支持的内存类型,怎么查看电脑主板支持多大内存?教你看主板支持多大内存2种方法...
- 转行IT要趁早,多迪教育新就业数据告诉你真相
- 如何使用 SetPrinter 修改打印机设置
- vue脚手架 打包压缩代码
- VBA中控件MSCHART 的曲线或柱状图上显示值
- 如何模拟高铁站售票窗口,开启三个窗口进行售票,总票数100?
- 挣值管理(PV、EV、AC、SV、CV、SPI、CPI)记忆之我见
- ORA-00069: cannot acquire lock