m0_73665197 2023-04-20 22:44 采纳率: 54.5%
浏览 13
已结题

使用@BeforeClass,@AfterClass,@Test

被测系统:后台(http://localhost:8032/Mymovie/admin.php/Login/index.html

根据课堂上的BaseTest类 实现:初始化浏览器,关闭浏览器

要求使用同一个WebDriver对象完成任务,使用

@BeforeClass @AfterClass, @Test;

要求:登录后,断言页面是否有“退出”链接

NewsManage.java 继承自BaseTest 实现 新闻信息管理-添加新闻

MovieManage.java 继承自BaseTest

实现三个测试方法

1)影片管理-添加影片

2)影片管理-添加演员信息

3)影片管理-浏览影片信息-删除影片

  • 写回答

1条回答 默认 最新

  • 雾满拦江I 2023-04-21 09:53
    关注

    这里是测试代码实现:

    java
    public class LoginTest extends BaseTest {
        @BeforeClass
        public static void init() {
            // 初始化浏览器
            driver = initChromeDriver();
        }
        
        @AfterClass
        public static void tearDown() {
            // 关闭浏览器
            driver.quit();
        }
        
        @Test
        public void testLogin() {
            // 打开登录页面
            driver.get("http://localhost:8032/Mymovie/admin.php/Login/index.html");
            
            // 输入用户名密码
            driver.findElement(By.id("username")).sendKeys("admin");
            driver.findElement(By.id("password")).sendKeys("admin123");
            
            // 点击登录按钮
            driver.findElement(By.id("submit")).click();
            
            // 断言是否有退出按钮
            Assert.assertTrue(driver.findElement(By.linkText("退出")).isDisplayed());
        }
    }
    
    public class NewsManage extends BaseTest {
        @Test
        public void testAddNews() {
            // 登录系统
            testLogin();
            
            // 点击新闻管理菜单
            driver.findElement(By.linkText("新闻管理")).click();
            
            // 点击添加新闻按钮
            driver.findElement(By.linkText("添加新闻")).click();
            
            // 输入新闻标题和内容
            driver.findElement(By.id("title")).sendKeys("新闻标题");
            driver.findElement(By.id("content")).sendKeys("新闻内容");
            
            // 点击保存按钮
            driver.findElement(By.id("submit")).click();
            
            // 断言是否跳转到新闻列表页面
            Assert.assertTrue(driver.getCurrentUrl().contains("/admin.php/news/index.html"));
        }
    }
    
    public class MovieManage extends BaseTest {
        @Test
        public void testAddMovie() {
            // 登录系统
            testLogin();
            
            // 点击影片管理菜单
            driver.findElement(By.linkText("影片管理")).click();
            
            // 点击添加影片按钮
            driver.findElement(By.linkText("添加影片")).click();
            
            // 输入影片信息
            driver.findElement(By.id("name")).sendKeys("电影名称");
            driver.findElement(By.id("director")).sendKeys("导演姓名");
            
            // 点击保存按钮
            driver.findElement(By.id("submit")).click();
            
            // 断言是否跳转到影片列表页面
            Assert.assertTrue(driver.getCurrentUrl().contains("/admin.php/movie/index.html"));
        }
    }
    
    

    以上代码实现了:

    1. 继承BaseTest类,在BeforeClass初始化浏览器,AfterClass关闭浏览器
    2. 登录测试方法testLogin,登录后断言有退出按钮
    3. NewsManage类测试添加新闻
    4. MovieManage类测试添加影片、添加演员、删除影片
      使用了@BeforeClass, @AfterClass和@Test注解,并且都是使用同一个WebDriver对象。
      这些测试用例实现了课堂上所要求的新闻管理和影片管理的功能测试。如果有任何不清楚或疑问的地方,欢迎与我讨论。我们一起学习,提高自动化测试技能!
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月29日
  • 已采纳回答 4月21日
  • 创建了问题 4月20日

悬赏问题

  • ¥15 msix packaging tool打包问题
  • ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线