当前位置: 首页 > news >正文

博客项目自动化测试(一)

1. 确认博客系统的环境搭建

        http://49.235.129.183:8080/java109_blog_system/blog_list.html,即可访问我的小项目;

2. 确定测试用例

        测试用例如下所示:

3. 关于登录的测试用例 

3.1 初始化和退出浏览器

        代码如下:

package BlogAutoTests;import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;public class InitAndEndBrowser {static WebDriver webDriver;@BeforeAllstatic void OpenBlogSystem() {webDriver = new ChromeDriver();}@AfterAllstatic void CloseBlogSystem() {webDriver.quit();}
}

2.2 测试登录页面成功

package BlogAutoTests;import org.junit.jupiter.api.*;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvFileSource;
import org.junit.jupiter.params.provider.CsvSource;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;import static java.lang.Thread.sleep;public class Tests {static WebDriver webDriver = new ChromeDriver();WebDriver CreateChromeDriver(){WebDriver webDriver = new ChromeDriver();return webDriver;}// 登录测试用例@Testvoid Login() throws InterruptedException {WebDriver webDriver = CreateChromeDriver();webDriver.get("http://49.235.129.183:8080/java109_blog_system/blog_list.html");sleep(3000);//输入用户名webDriver.findElement(By.cssSelector("#username")).sendKeys("smallye");//输入密码webDriver.findElement(By.cssSelector("#password")).sendKeys("111");//点击提交webDriver.findElement(By.cssSelector("#submit")).click();sleep(3000);// 登录成功后,校验是否登陆成功String username = webDriver.findElement(By.cssSelector("body > div.container > div.container-left > div > h3")).getText();if(username.equals("smallye")) {System.out.println("测试通过");} else {System.out.println("测试不通过");}}void DestroyChromeDriver(){webDriver.quit();}}

测试结果如下所示:

2.3  验证当前的url

 String cur_url = webDriver.getCurrentUrl();if(cur_url.equals("http://49.235.129.183:8080/java109_blog_system/blog_list.html")) {System.out.println("测试通过");} else {System.out.println("测试不通过");}

        结果如下:

2.4 多参数接收修改代码

        代码如下:将@test修改为多参数注解

@ParameterizedTest@CsvSource({"'http://49.235.129.183:8080/java109_blog_system/blog_list.html', 'smallye', 'http://49.235.129.183:8080/java109_blog_system/blog_list.html', '111'"})void Login(String url, String username, String expected_jump_url, String password) throws InterruptedException {WebDriver webDriver = CreateChromeDriver();webDriver.get("http://49.235.129.183:8080/java109_blog_system/blog_list.html");sleep(3000);//输入用户名webDriver.findElement(By.cssSelector("#username")).sendKeys(username);//输入密码webDriver.findElement(By.cssSelector("#password")).sendKeys(password);//点击提交webDriver.findElement(By.cssSelector("#submit")).click();sleep(3000);// 登录成功后,校验是否登陆成功String uname = webDriver.findElement(By.cssSelector("body > div.container > div.container-left > div > h3")).getText();if(username.equals("smallye")) {System.out.println("测试通过");} else {System.out.println("测试不通过");}String cur_url = webDriver.getCurrentUrl();if(cur_url.equals(expected_jump_url)) {System.out.println("测试通过");} else {System.out.println("测试不通过");}}

        结果如下:

2.5 登录失败测试

        当登录失败之后会跳转到新的如下页面:

        代码如下:

 @Testvoid LoginError() throws InterruptedException {String username = "smallye";String password = "111111";WebDriver webDriver1 = new ChromeDriver();webDriver1.get("http://49.235.129.183:8080/java109_blog_system/blog_list.html");sleep(3000);webDriver1.findElement(By.cssSelector("#username")).sendKeys(username);webDriver1.findElement(By.cssSelector("#password")).sendKeys(password);webDriver1.findElement(By.cssSelector("#submit")).click();sleep(3000);WebElement webElement = webDriver1.findElement(By.cssSelector("body"));
//        Assertions.assertEquals( "登录失败! 用户名或者密码错误!",webElement.getText());if(webElement.getText().equals("您输入的用户名或密码不正确!")){System.out.println("测试通过");}else {System.out.println("测试不通过");}}

        结果显示测试通过!

将判断实际结果与预期结果的代码转化为断言的格式:代码如下所示:

 Assertions.assertEquals( "您输入的用户名或密码不正确!",webElement.getText());

ps:本文就写到这里了,谢谢观看。

http://www.lryc.cn/news/457786.html

相关文章:

  • 电商商品API接口系列(商品详情数据)商品比价、数据分析、自营商城上货
  • 排序算法总结(一)冒泡排序和选择排序
  • 伺服电动缸
  • 深度学习中的logit到底是什么?
  • idea使用记录
  • Python - HTTP servers
  • 内网Debian\Ubuntu服务器安装dep包,基于apt-rdepends下载相关依赖
  • 大模型——如何实现超长多轮对话
  • 大数据面试-笔试SQL
  • 希尔排序和直接插入排序
  • IDEA 配置 Git 详解
  • Docker 部署 Redis 监控系统实战:Redis Exporter 与 Prometheus 完整配置指南
  • 高级算法设计与分析-MaxFlow网络流基础知识
  • Java项目实战II基于Java+Spring Boot+MySQL的桂林旅游景点导游平台(源码+数据库+文档)
  • C语言-输入输出
  • 如何在GitHub上传自己的项目?(一文看懂,每一步的操作和解决常见错误的方法)
  • 数据结构_day1
  • c# using 声明进行资源管理
  • Kafka之基本概念
  • 倪师学习笔记-天纪-斗数简介
  • Python酷库之旅-第三方库Pandas(143)
  • 细说QT各种线程锁的特点和用法
  • Caffeine+Redis两级缓存架构
  • kafka和zookeeper单机部署
  • 别了,公有云!下云迁移真的是大趋势么?
  • 网关在不同行业自动化生产线的应用
  • C++ socket编程(1)
  • C# 文件夹类的实现与文件属性处理
  • 基于SSM框架和Layui的学院课程安排系统的设计与实现(源码+定制+定制)
  • 【论文笔记】DKTNet: Dual-Key Transformer Network for small object detection