作者@ Autumn60
欢迎关注:点赞收藏✍️留言
微语 :只有镜子和钱包,可以告诉你生活中,大部分的为什么和凭什么
目录
文章目录
概述:
测试方法:
简易博客测试用例:
功能测试
登录页面
登录失败情况:
登录成功
查看全文功能
博客列表页
查看全文
编写博客功能
注销功能
界面测试
登录页面
博客列表页
博客详情页
兼容性测试
PC
手机
浏览器
测试中出现的BUG
本次测试旨在评估简易博客的核心的功能,包括登录界面、博客详情页、编写博客页面、注销等功能。测试环境为Windows 10操作系统,使用Google Chrome浏览器进行测试。
本次测试采用黑盒测试方法,即不考虑系统内部的实现细节,只关注用户在使用过程中是否能够顺利完成任务。测试人员通过模拟真实用户的操作,对聊天室的各项功能进行了测试。
Xmind 下载地址 :点击跳转
1.先创建一个用来初始化的类
让测试用例来继承此接口
public class InitAndEnd {
//用来被继承的接口
static WebDriver webDriver;
/**
* BeforeAll第一个执行,用来初始化驱动
*/
@BeforeAll
static void SetUp() {
webDriver = new ChromeDriver();
}
/**
* 因为AfterAll是最后一个执行
* 当所有测试用例跑完后,用它来执行关闭浏览器
*/
@AfterAll
static void TeraDown() {
webDriver.quit();
}
}
自动化测试用例:
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)//设置优先级需要的
public class BlogCases extends InitAndEnd{
@Order(1)
@Test
/**
* 输入错误的账号和密码,进行登录
*/
void LoginFailed() throws InterruptedException {
//1.先打开页面
webDriver.get("http://152.136.173.212:8080/java_blog_system/blog3.html");
//2.通过css选择器获取账号和密码输入框并且输入,其次找到登录按钮
webDriver.findElement(By.cssSelector("#username")).sendKeys("123");
webDriver.findElement(By.cssSelector("#password")).sendKeys("456");
webDriver.findElement(By.cssSelector("#submit")).click();
//当输入错误的密码时会跳转且提示;校验是否跳转并且提示
String cur_url = webDriver.getCurrentUrl();
Assertions.assertEquals("http://152.136.173.212:8080/java_blog_system/login",cur_url);
//查看提示是否正确
String cur_Prompt= webDriver.findElement(By.cssSelector("body > h3")).getText();
Assertions.assertEquals("登录失败,用户名或密码有误",cur_Prompt);
sleep(2000);
}
@Order(2)
@Test
/**
* 输入正确的账号和密码,进行登录
*/
void LoginSuccess() throws InterruptedException {
//1.先打开页面,输入账号和密码:lisi,123
webDriver.get("http://152.136.173.212:8080/java_blog_system/blog3.html");
//2.通过css选择器获取账号和密码输入框并且输入,其次找到登录按钮
webDriver.findElement(By.cssSelector("#username")).sendKeys("lisi");
webDriver.findElement(By.cssSelector("#password")).sendKeys("123");
webDriver.findElement(By.cssSelector("#submit")).click();
//3.校验用户信息是否与登录用户相等;
String admin = webDriver.findElement(By.cssSelector("body > div.container > div.container-left > div > h3")).getText();
Assertions.assertEquals("lisi",admin);
sleep(2000);
}
测试结果:在测试登录功能中 测试了多项指标 整体体验效果较好;
/**
* 博客列表页的验证
*/
@Order(3)
@Test
void BLogList() throws InterruptedException {
// 校验博客数量是否大于0
int num = webDriver.findElements(By.cssSelector(".title")).size();
Assertions.assertNotEquals(0,num);
// 校验博客列表页url
String cir_url = webDriver.getCurrentUrl();
Assertions.assertNotEquals("http://152.136.173.212:8080/java_blog_system/blog1.html",cir_url);
sleep(3000);
}
/**
* 查看全文按钮的校验
*/
@Order(4)
@Test
void BlogList2() throws InterruptedException {
// 校验-查看全文-按钮,是否跳转
webDriver.findElement(By.cssSelector("body > div.container > div.container-right > div:nth-child(2) > a")).click();
String blog_cur = webDriver.getCurrentUrl();
Assertions.assertEquals("http://152.136.173.212:8080/java_blog_system/blog2.html?blogId=2",blog_cur);
// 校验第一篇博客标题是否正确
String blog_title = webDriver.findElement(By.cssSelector("body > div.container > div.container-right > h3")).getText();
Assertions.assertEquals("我的第二篇博客",blog_title);
sleep(2000);
}
测试结果
测试用例:
/**
* 编写博客功能的测试
*/
@Order(5)
@Test
void EditBlog() {
//1.找编写博客按钮
webDriver.findElement(By.cssSelector("body > div.nav > a:nth-child(5)")).click();
// 点击后校验跳转 url 是否正常
String cur_url = webDriver.getCurrentUrl();
Assertions.assertEquals("http://152.136.173.212:8080/java_blog_system/blog4.html",cur_url);
webDriver.findElement(By.cssSelector("#title-input")).sendKeys("自动化-测试");
webDriver.findElement(By.cssSelector("#editor > div.CodeMirror.cm-s-default.CodeMirror-wrap > div.CodeMirror-scroll")).sendKeys("自动化测试");
webDriver.findElement(By.cssSelector("#submit")).click();
// 提交博客成功后是否跳转正确
String url = webDriver.getCurrentUrl();
Assertions.assertEquals("http://152.136.173.212:8080/java_blog_system/blog1.html",url);
}
/**
* 校验发布的博客标题和时间是否正确
*/
@Order(6)
@Test
void BlogChess() throws InterruptedException {
webDriver.get("http://152.136.173.212:8080/java_blog_system/blog1.html");
// 获取博客发布标题 是否正确
String first_blog_title = webDriver.findElement(By.cssSelector("body > div.container > div.container-right > div:nth-child(1) > div.title")).getText();
// 获取博客发布时间 是否正确
String first_blog_time = webDriver.findElement(By.xpath("/html/body/div[2]/div[2]/div[1]/div[2]")).getText();
Assertions.assertEquals("自动化-测试",first_blog_title);
if(first_blog_time.contains("2023-7-31")) {
System.out.println("测试通过");
} else {
System.out.println("测试不通过");
}
sleep(7000);
}
测试结果: 此功能正常
测试用例:
@Order(7)
@Test
void Logout(){
// 1.编写测试用例
// 第一步先找元素,找到之后,点击
webDriver.findElement(By.cssSelector("body > div.nav > a:nth-child(6)")).click();
// 2.点击之后退出到登录页面,验证登录页面是否相等;
// 既然是要验证,那么就先要获取
String cur_url = webDriver.getCurrentUrl();
Assertions.assertEquals("http://152.136.173.212:8080/java_blog_system/blog3.html",cur_url);
}
测试结果:简易博客的用户登录界面设计简洁明了,易于操作,位置合理,目的明确
测试结果:简易博客的用户登录界面设计简洁明了,易于操作,位置合理,目的明确
测试结果:简易博客的用户登录界面设计简洁明了,易于操作,位置合理,目的明确
编写博客页
测试结果 :风格与其他几个页面统一 整体风格较为简洁,布局合理明确,内嵌MD编辑器,编辑器简单,容易上手
测试结果:在windows,Mac系统中使用网页访问效果一致 功能使用正常 兼容测试通过
测试结果:在安卓、IOS系统中对于页面布局无法正常展示 无法进行正常的使用 兼容测试不通过
测试结果:在Chrom、EDGE内核中的浏览器使用正常 页面布局显示正确 功能使用正常 兼容性测试通过
上述的BUG,后续会修BUG,没有删除博客功能,后续也会更加完善此简易博客系统