全国大学生软件测试大赛

这篇博客详细记录了2020全国大学生软件测试大赛决赛中进行的功能测试过程,主要涉及网页的自动化测试,包括页面跳转、窗口句柄切换、元素交互等操作,如登录、内容编辑、图像处理、文章发布等,体现了测试的全面性和细致性。
摘要由CSDN通过智能技术生成

2020全国大学生软件测试大赛决赛总结

功能测试(主要针对该部分总结)

测试需求
下面是这次功能测试的对应代码:

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.By;

public class Example {

    // Mooctest Selenium Example


    // <!> Check if selenium-standalone.jar is added to build path.

    public static void test(WebDriver driver) throws InterruptedException {
        // TODO Test script
        // eg:driver.get("https://www.baidu.com/")
        // eg:driver.findElement(By.id("wd"));
    	driver.get("http://www.asll.net/");
    	Thread.sleep(2000);
    	driver.manage().window().maximize();
    	Thread.sleep(1000);
    	
    	driver.findElement(By.xpath("/html/body/div[1]/div[1]/header/div[3]/nav/div/div[2]/div/ul/li[3]/a")).click();
    	Thread.sleep(1000);
    	
    	//跳转新页面2
   	 	String handle1 = driver.getWindowHandle();  
   	    // 获取所有页面的句柄,并循环判断不是当前的句柄 
   	    for (String handle2 : driver.getWindowHandles()) {  
   	        if (handle2.equals(handle1))  
   	            continue;  
   	        driver.switchTo().window(handle2);     
   	    }
   	    
   	    driver.findElement(By.xpath("/html/body/div[1]/div/header/div[3]/nav/div/div[2]/div/ul/li[4]/a")).click();
   	    Thread.sleep(1000);
    	
   	    String handle2 = driver.getWindowHandle();  
	    // 获取所有页面的句柄,并循环判断不是当前的句柄 
	    for (String handle3 : driver.getWindowHandles()) {  
	        if (handle3.equals(handle2))  
	            continue;  
	        driver.switchTo().window(handle3);     
	    }
    	//左右滑动
	    driver.findElement(By.xpath("/html/body/div[1]/div/section[3]/div/div/div/div[1]/div/div[2]/div/div[1]")).click();
    	Thread.sleep(1000);
    	driver.findElement(By.xpath("/html/body/div[1]/div/section[3]/div/div/div/div[1]/div/div[2]/div/div[2]")).click();
    	Thread.sleep(3000);
    	//第一篇博客(由于这边每位选手成功提交后会发生相应变化,所以这边可以注释掉,手动点击)
//    	driver.findElement(By.xpath("/html/body/div[2]/div/div[2]/div/div/div/div/div/article[1]/div[2]/h4/a")).click();
//    	Thread.sleep(2000);
    	
    	String handle3 = driver.getWindowHandle();  
	    // 获取所有页面的句柄,并循环判断不是当前的句柄 
	    for (String handle4 : driver.getWindowHandles()) {  
	        if (handle4.equals(handle3))  
	            continue;  
	        driver.switchTo().window(handle4);     
	    }
    	driver.findElement(By.xpath("/html/body/div[1]/div/main/div/div/aside/aside/div/div[1]/div[2]/a[2]")).click();
    	Thread.sleep(3000);
    	
    	String handle4 = driver.getWindowHandle();  
	    // 获取所有页面的句柄,并循环判断不是当前的句柄 
	    for (String handle5 : driver.getWindowHandles()) {  
	        if (handle5.equals(handle4))  
	            continue;  
	        driver.switchTo().window(handle5);     
	    }
	    
	    driver.switchTo().frame("advanced_iframe");
    	//登录
	    driver.findElement(By.xpath("//*[@id=\"user_login\"]")).sendKeys("zmdsnly");
    	Thread.sleep(1000);
    	driver.findElement(By.xpath("/html/body/div[1]/form/div/div/input")).sendKeys("ly123456");
    	Thread.sleep(1000);
    	driver.findElement(By.xpath("/html/body/div[1]/form/p[3]/input[1]")).click();
    	Thread.sleep(1000);
    	driver.switchTo().defaultContent();
    	Thread.sleep(3000);
    	//手动 回到首页

    	String handle5 = driver.getWindowHandle();  
	    // 获取所有页面的句柄,并循环判断不是当前的句柄 
	    for (String handle6 : driver.getWindowHandles()) {  
	        if (handle6.equals(handle5))  
	            continue;  
	        driver.switchTo().window(handle6);     
	    }
    	//fabiaowenzhang
	    driver.findElement(By.xpath("/html/body/div[2]/div[1]/main/div/div/aside/aside/div/div[1]/div[2]/a[3]")).click();
    	Thread.sleep(1000);
    	
    	String handle6 = driver.getWindowHandle();  
	    // 获取所有页面的句柄,并循环判断不是当前的句柄 
	    for (String handle7 : driver.getWindowHandles()) {  
	        if (handle7.equals(handle6))  
	            continue;  
	        driver.switchTo().window(handle7);     
	    }
	    Thread.sleep(2000);
	    //需要手动关闭
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[1]/div[4]/div[2]/div/div/div[2]/div[2]/div[1]/div/textarea")).sendKeys("测试大赛预览网页");
    	Thread.sleep(1000);
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[1]/div[4]/div[2]/div/div/div[2]/div[2]/div[2]/div/div/div/div/button")).click();
    	Thread.sleep(1000);
    	//段落
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[2]/div/div/div/div/div/div/div/div[2]/div[2]/div/div[2]/button/span[2]")).click();
    	Thread.sleep(1000);
    	//更多
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[1]/div/div[2]/div[3]/button")).click();
    	Thread.sleep(1000);
    	//代码编辑器
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[2]/div/div/div/div/div/div/div/div[2]/div[2]/button[2]")).click();
    	Thread.sleep(1000);
    	//HTML
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[1]/div[4]/div[2]/textarea")).sendKeys("<table>\n");
    	Thread.sleep(500);
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[1]/div[4]/div[2]/textarea")).sendKeys("<tbody style='font-size:25px;text-align:center'>\n");
    	Thread.sleep(500);
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[1]/div[4]/div[2]/textarea")).sendKeys("<tr>\n");
    	Thread.sleep(500);
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[1]/div[4]/div[2]/textarea")).sendKeys("<th style='font-size: 40px; font-weight: bold;' colspan='5'>全国大学生软件测试大赛总决赛\n");
    	Thread.sleep(500);
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[1]/div[4]/div[2]/textarea")).sendKeys("<span style='font-size:25px'>Mooctest 2020.11.22</span></th>\n");
    	Thread.sleep(500);
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[1]/div[4]/div[2]/textarea")).sendKeys("</tr>\n");
    	Thread.sleep(500);
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[1]/div[4]/div[2]/textarea")).sendKeys("<tr>\n");
    	Thread.sleep(500);
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[1]/div[4]/div[2]/textarea")).sendKeys("<td>开发者</td>\n");
    	Thread.sleep(500);
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[1]/div[4]/div[2]/textarea")).sendKeys("<td>移动应用</td>\n");
    	Thread.sleep(500);
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[1]/div[4]/div[2]/textarea")).sendKeys("<td>Web应用</td>\n");
    	Thread.sleep(500);
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[1]/div[4]/div[2]/textarea")).sendKeys("<td>嵌入式</td>\n");
    	Thread.sleep(500);
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[1]/div[4]/div[2]/textarea")).sendKeys("<td>Web安全</td>\n");
    	Thread.sleep(500);
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[1]/div[4]/div[2]/textarea")).sendKeys("</tr>\n");
    	Thread.sleep(500);
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[1]/div[4]/div[2]/textarea")).sendKeys("</tbody>\n");
    	Thread.sleep(500);
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[1]/div[4]/div[2]/textarea")).sendKeys("</table>");
    	Thread.sleep(500);
    	
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[1]/div[4]/div[1]/button")).click();
    	Thread.sleep(1000);
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[1]/div/div[2]/button[1]")).click();
    	Thread.sleep(2000);
    	Thread.sleep(2000);
    	//设置居中 颜色
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[1]/div[4]/div[2]/div/div/div[2]/div[2]/div[2]/div/div[1]/div[2]/table/tbody/tr[1]/th")).click();
    	Thread.sleep(1000);
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[1]/div[4]/div[2]/div/div/div[2]/div[2]/div[2]/div/div[1]/div[1]/div/div/div[2]/div/div[1]/div/div/div/div[8]/button")).click();
    	Thread.sleep(3000);
    	//blue
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[1]/div[4]/div[2]/div/div/div[2]/div[2]/div[2]/div/div[1]/div[1]/div/div/div[2]/div/div[2]/div/div/div/div[3]/button[2]")).click();
    	Thread.sleep(1000);
    	driver.findElement(By.xpath("/html/body/div[9]/table/tbody/tr[2]/td[6]/div")).click();
    	Thread.sleep(3000);
    	//gray
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[1]/div[4]/div[2]/div/div/div[2]/div[2]/div[2]/div/div[1]/div[1]/div/div/div[2]/div/div[2]/div/div/div/div[3]/button[2]")).click();
    	Thread.sleep(1000);
    	driver.findElement(By.xpath("/html/body/div[9]/table/tbody/tr[2]/td[8]/div")).click();
    	Thread.sleep(3000);
    	//手动
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[1]/div[4]/div[2]/div/div/div[2]/div[2]/div[2]/div/div/div/div/button")).click();
    	Thread.sleep(1000);
    	//图像
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[2]/div/div/div/div/div/div/div/div[2]/div[2]/div/div[3]/button")).click();
    	Thread.sleep(1000);
    	//url
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[1]/div[4]/div[2]/div/div/div[2]/div[2]/div[2]/div/figure/div/div[3]/div[3]/button")).click();
    	Thread.sleep(1000);
    	//输入url
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[2]/div/div/div/div/div/div/div/div/form/input")).sendKeys("http://www.mooctest.org/static/img/banner4.eaa50f4.jpg");
    	Thread.sleep(1000);
    	//回车
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[2]/div/div/div/div/div/div/div/div/form/button")).click();
    	Thread.sleep(1000);
    	
    	//图片样式
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[1]/div[4]/div[1]/div/div/div/div/div[2]/div/div/div[1]/div[2]/div[1]/div/button")).click();
    	Thread.sleep(1000);
    	//圆角
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[2]/div[2]/div/div/div/div/div/div/div/div[2]/div[2]/div/div[2]/div[1]/div")).click();
    	Thread.sleep(1000);
    	//文档
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[2]/div/div[2]/ul/li[1]/button")).click();
    	Thread.sleep(1000);
    	//特色图像
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[2]/div/div[3]/div[5]/h2/button")).click();
    	Thread.sleep(1000);
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[2]/div/div[3]/div[5]/div/div/button")).click();
    	Thread.sleep(1000);
    	driver.findElement(By.xpath("/html/body/div[10]/div[1]/div/div/div[3]/div[1]/div/button[2]")).click();
    	Thread.sleep(1000);
    	//第六张图片
    	driver.findElement(By.xpath("/html/body/div[10]/div[1]/div/div/div[3]/div[2]/div/ul/li[6]/div/div")).click();
    	Thread.sleep(1000);
    	//设置特色图像
    	driver.findElement(By.xpath("/html/body/div[10]/div[1]/div/div/div[4]/div/div[2]/button")).click();
    	Thread.sleep(1000);
    	//发布
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[1]/div/div[2]/button[2]")).click();
    	Thread.sleep(1000);
    	//可见性-公开
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[3]/div/div/div/div[2]/div/div[2]/h2/button")).click();
    	Thread.sleep(1000);
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[3]/div/div/div/div[2]/div/div[2]/fieldset/div[3]/input")).click();
    	Thread.sleep(1000);
    	//密码保护设置密码
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[3]/div/div/div/div[2]/div/div[2]/div/input")).sendKeys("mooctest");
    	Thread.sleep(1000);
    	//推荐:添加标签
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[3]/div/div/div/div[2]/div/div[4]/h2/button")).click();
    	Thread.sleep(1000);
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[3]/div/div/div/div[2]/div/div[4]/div/div/input")).sendKeys("测试\n大赛\n");
    	Thread.sleep(1000);
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[3]/div/div/div/div[2]/div/div[4]/div/div/span[2]/button")).click();
    	Thread.sleep(1000);
    	//点击发布
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[3]/div/div/div/div[1]/div[1]/button")).click();
    	Thread.sleep(1000);
    	//查看文章
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/div[1]/div/div/div[1]/div/div[2]/div[3]/div/div/div/div[2]/div/div[2]/div[2]/a")).click();
    	Thread.sleep(1000);
    	//进入用户界面
    	driver.findElement(By.xpath("/html/body/div[1]/div/ul[2]/li[2]")).click();
    	Thread.sleep(1000);
    	String handle7 = driver.getWindowHandle();  
	    // 获取所有页面的句柄,并循环判断不是当前的句柄 
	    for (String handle8 : driver.getWindowHandles()) {  
	        if (handle8.equals(handle7))  
	            continue;  
	        driver.switchTo().window(handle8);     
	    }
    	
	    //文章
	    driver.findElement(By.xpath("/html/body/div[1]/div[1]/div[2]/ul/li[3]/a")).click();
    	Thread.sleep(1000);
    	//所有文章
    	driver.findElement(By.xpath("/html/body/div[1]/div[1]/div[2]/ul/li[3]/ul/li[2]/a")).click();
    	Thread.sleep(1000);
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/ul/li[2]/a")).click();
    	Thread.sleep(1000);
    	//选择移动到回收站
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/form[1]/div[1]/div[1]/select")).click();
    	Thread.sleep(1000);
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/form[1]/div[1]/div[1]/select/option[3]")).click();
    	Thread.sleep(1000);
    	//全选
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/form[1]/table/thead/tr/td/input")).click();
    	Thread.sleep(1000);
    	//应用
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/form[1]/div[1]/div[1]/input")).click();
    	Thread.sleep(1000);
    	//回收站
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/ul/li[4]/a")).click();
    	Thread.sleep(1000);
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/form[1]/div[1]/div[1]/select")).click();
    	Thread.sleep(1000);
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/form[1]/div[1]/div[1]/select/option[3]")).click();
    	Thread.sleep(1000);
    	//全选-应用
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/form[1]/table/thead/tr/td/input")).click();
    	Thread.sleep(1000);
    	driver.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div[1]/div[3]/form[1]/div[1]/div[1]/input")).click();
    	Thread.sleep(1000);
    	
    }

    public static void main(String[] args) {
        // Run main function to test your script.
        WebDriver driver = new ChromeDriver();
        try { test(driver); } 
        catch(Exception e) { e.printStackTrace(); }
        finally { driver.quit(); }
    }

}

在这里插入图片描述

这次决赛的功能测试主要是跳转界面的句柄切换,这次的重点没有放在框架的切换,以上具体代码带有注释,跑分是91.43,这是本人最后一次全国大学生软件测试大赛,以上代码希望能帮助到更多需要帮助的人。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值