测试代码
package MySpacePage;
import LoginPage.InitAndEnd;
import org.apache.commons.lang3.RandomStringUtils;
import org.junit.jupiter.api.*;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvFileSource;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
import static java.lang.Thread.sleep;
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class MySpacePageTest extends InitAndEnd {
static WebDriver webDriver;
@BeforeAll
static void SetUp() {
webDriver = new ChromeDriver();
}
@AfterAll
static void TearDown() {
webDriver.quit();
}
/**
* 点击聊天按钮
*/
@Order(1)
@ParameterizedTest
@CsvFileSource(resources = "TestMS001.csv")
void TestMS001(String login_url, String username, String password, String client_url, String alert_text) throws InterruptedException {
// 打开登录页面
webDriver.get(login_url);
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
// 输入账号zhangsan
webDriver.findElement(By.cssSelector("#username")).sendKeys(username);
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
// 输入密码123456
webDriver.findElement(By.cssSelector("#password")).sendKeys(password);
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
// 点击提交按钮
webDriver.findElement(By.cssSelector("#submit")).click();
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
//切换到alert,获取alert
sleep(2000);
Alert alert = webDriver.switchTo().alert();
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
String alertText = alert.getText();
//alertText = "登录成功!"测试通过,否则不通过
Assertions.assertEquals(alert_text, alertText);
alert.accept();
// 跳转到聊天页
// 获取到当前页面url
String cur_url = webDriver.getCurrentUrl();
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
// 如果url=http://139.196.92.170:8080/client.html,测试通过,否则测试不通过
Assertions.assertEquals(client_url, cur_url);
// 聊天页展示用户信息是zhangsan
// 用户名是zhangsan测试通过,否则测试不通过
String cur_admin = webDriver.findElement(By.cssSelector("body > div.client-container > div.main > div.left > div.user")).getText();
Assertions.assertEquals(username, cur_admin);
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
//点击空间按钮,进入我的空间
webDriver.findElement(By.cssSelector("body > div.nav > a:nth-child(4)")).click();
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
//点击聊天按钮,返回聊天页
webDriver.findElement(By.cssSelector("body > div.nav > a")).click();
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
cur_url = webDriver.getCurrentUrl();
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
// 如果url=http://139.196.92.170:8080/client.html,测试通过,否则测试不通过
Assertions.assertEquals(client_url, cur_url);
}
/**
* 点击好友按钮
*/
@Order(2)
@ParameterizedTest
@CsvFileSource(resources = "TestMS002.csv")
void TestMS002(String mySpace_url) {
//跳转到我的空间页
webDriver.get(mySpace_url);
webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
//点击好友按钮
webDriver.findElement(By.cssSelector("body > div.client-container > div.main > div.left > div.tab > div.tab-friend")).click();
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
//判断左边列表是否是好友列表
//是好友列表测试通过,否则不通过
WebElement element =webDriver.findElement(By.cssSelector("#friend-list"));
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
Assertions.assertNotNull(element);
}
/**
* 点击我的收藏按钮
*/
@Order(3)
@ParameterizedTest
@CsvFileSource(resources = "TestMS003.csv")
void TestMS003(String mySpace_url) {
//跳转到我的空间页
webDriver.get(mySpace_url);
webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
//点击好友按钮
webDriver.findElement(By.cssSelector("body > div.client-container > div.main > div.left > div.tab > div.tab-resonance")).click();
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
//判断左边列表是否是好友列表
//是好友列表测试通过,否则不通过
WebElement element =webDriver.findElement(By.cssSelector("#resonance-list"));
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
Assertions.assertNotNull(element);
}
/**
* 点击好友,进入好友列表
*/
@Order(4)
@ParameterizedTest
@CsvFileSource(resources = "TestMS004.csv")
void TestMS004(String mySpace_url) throws InterruptedException {
//跳转到我的空间页
webDriver.get(mySpace_url);
webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
//点击好友按钮
webDriver.findElement(By.cssSelector("body > div.client-container > div.main > div.left > div.tab > div.tab-friend")).click();
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
//点击第一个好友,进入好友空间
String friendName = webDriver.findElement(By.cssSelector("#friend-list > li:nth-child(1) > h4")).getText();
webDriver.findElement(By.cssSelector("#friend-list > li:nth-child(1)")).click();
sleep(2000);
//获取好友空间的名字
String user = webDriver.findElement(By.cssSelector("body > div.client-container > div.main > div.left > div.user")).getText();
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
//判断是否进入正确的好友空间
Assertions.assertEquals(friendName,user);
}
/**
* 点击收藏动态
*/
@Order(5)
@ParameterizedTest
@CsvFileSource(resources = "TestMS005.csv")
void TestMS005(String mySpace_url) throws InterruptedException {
//跳转到我的空间页
webDriver.get(mySpace_url);
webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
//点击好友按钮
webDriver.findElement(By.cssSelector("body > div.client-container > div.main > div.left > div.tab > div.tab-resonance")).click();
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
//获取第一个收藏动态的作者和内容预览
String author = webDriver.findElement(By.cssSelector("#resonance-list > li:nth-child(1) > h3")).getText();
String preview = webDriver.findElement(By.cssSelector("#resonance-list > li:nth-child(1) > p")).getText();
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
//点击第一个被收藏的动态
webDriver.findElement(By.cssSelector("#resonance-list > li:nth-child(1)")).click();
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
//获取动态详情的标题和详细内容
sleep(2000);
String title = webDriver.findElement(By.cssSelector("body > div.client-container > div.main > div.right > div.title")).getText();
String detail = webDriver.findElement(By.cssSelector("body > div.client-container > div.main > div.right > div.drift-bottle-show > div > div.sentence > p")).getText();
//详细内容截断
if(detail.length() > 10){
detail = detail.substring(0,10) + "...";
}
//判断收藏动态详情是否被正确显示
Assertions.assertEquals(preview,detail);
Assertions.assertEquals(author,title);
}
/**
* 未输入点击发送动态
*/
@Order(6)
@ParameterizedTest
@CsvFileSource(resources = "TestMS006.csv")
void TestMS006(String mySpace_url) throws InterruptedException {
//跳转到我的空间页
webDriver.get(mySpace_url);
webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
//获取动态条数
sleep(2000);
int sizeBefore = webDriver.findElements(By.cssSelector("body > div.client-container > div.main > div.right > div.drift-bottle-show > div")).size();
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
//不输入内容
//点击发送动态
webDriver.findElement(By.cssSelector("body > div.client-container > div.main > div.right > div.send > button")).click();
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
//页面无反应
//动态条数不变测试成功,否则不成功
int sizeAfter = webDriver.findElements(By.cssSelector("body > div.client-container > div.main > div.right > div.drift-bottle-show > div")).size();
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
Assertions.assertEquals(sizeBefore,sizeAfter);
}
/**
* 发送长度小于2048字动态
*/
@Order(7)
@ParameterizedTest
@CsvFileSource(resources = "TestMS007.csv")
void TestMS007(String mySpace_url,String alert_text) throws InterruptedException {
//跳转到我的空间页
webDriver.get(mySpace_url);
webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
//生成一段小于2048的字符串,输入内容
String randomString = RandomStringUtils.randomAlphabetic(1,2047);
webDriver.findElement(By.cssSelector("body > div.client-container > div.main > div.right > textarea")).sendKeys(randomString);
sleep(2000);
//点击发送动态
webDriver.findElement(By.cssSelector("body > div.client-container > div.main > div.right > div.send > button")).click();
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
sleep(3000);
Alert alert = webDriver.switchTo().alert();
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
String alertText = alert.getText();
//alertText = "登录成功!"测试通过,否则不通过
Assertions.assertEquals(alert_text, alertText);
alert.accept();
sleep(3000);
//最新动态内容一样
String detail = webDriver.findElement(By.cssSelector("body > div.client-container > div.main > div.right > div.drift-bottle-show > div:nth-child(1) > div > p")).getText();
Assertions.assertEquals(randomString,detail);
}
/**
* 发送长度等于2048字动态
*/
@Order(8)
@ParameterizedTest
@CsvFileSource(resources = "TestMS008.csv")
void TestMS008(String mySpace_url, String alert_text) throws InterruptedException {
//跳转到我的空间页
webDriver.get(mySpace_url);
webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
//生成一段小于2048的字符串,输入内容
String randomString = RandomStringUtils.randomAlphabetic(2048);
webDriver.findElement(By.cssSelector("body > div.client-container > div.main > div.right > textarea")).sendKeys(randomString);
sleep(2000);
//点击发送动态
webDriver.findElement(By.cssSelector("body > div.client-container > div.main > div.right > div.send > button")).click();
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
sleep(3000);
Alert alert = webDriver.switchTo().alert();
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
String alertText = alert.getText();
//alertText = "登录成功!"测试通过,否则不通过
Assertions.assertEquals(alert_text, alertText);
alert.accept();
sleep(3000);
//最新动态内容一样
String detail = webDriver.findElement(By.cssSelector("body > div.client-container > div.main > div.right > div.drift-bottle-show > div:nth-child(1) > div > p")).getText();
Assertions.assertEquals(randomString,detail);
}
/**
* 发送长度大于2048字动态
*/
@Order(9)
@ParameterizedTest
@CsvFileSource(resources = "TestMS009.csv")
void TestMS009(String mySpace_url, String alert_text) throws InterruptedException {
//跳转到我的空间页
webDriver.get(mySpace_url);
webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
//获取动态条数
sleep(2000);
int sizeBefore = webDriver.findElements(By.cssSelector("body > div.client-container > div.main > div.right > div.drift-bottle-show > div")).size();
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
//生成一段小于2048的字符串,输入内容
String randomString = RandomStringUtils.randomAlphabetic(2050);
webDriver.findElement(By.cssSelector("body > div.client-container > div.main > div.right > textarea")).sendKeys(randomString);
sleep(2000);
//点击发送动态
webDriver.findElement(By.cssSelector("body > div.client-container > div.main > div.right > div.send > button")).click();
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
sleep(3000);
Alert alert = webDriver.switchTo().alert();
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
String alertText = alert.getText();
//alertText = "登录成功!"测试通过,否则不通过
Assertions.assertEquals(alert_text, alertText);
alert.accept();
sleep(2000);
//动态条数不变测试成功,否则不成功
int sizeAfter = webDriver.findElements(By.cssSelector("body > div.client-container > div.main > div.right > div.drift-bottle-show > div")).size();
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
Assertions.assertEquals(sizeBefore,sizeAfter);
}
}
测试数据
TestMS001.csv
http://139.196.92.170:8080/login.html,zhangsan,123456,http://139.196.92.170:8080/client.html,登录成功!
TestMS002.csv
http://139.196.92.170:8080/my_space.html
TestMS003.csv
http://139.196.92.170:8080/my_space.html
TestMS004.csv
http://139.196.92.170:8080/my_space.html
TestMS005.csv
http://139.196.92.170:8080/my_space.html
TestMS006.csv
http://139.196.92.170:8080/my_space.html
TestMS007.csv
http://139.196.92.170:8080/my_space.html,动态添加成功!
TestMS008.csv
http://139.196.92.170:8080/my_space.html,动态添加成功!
TestMS009.csv
http://139.196.92.170:8080/my_space.html,动态过长,无法发送!