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

山河建设有限公司网站google搜索引擎入口google

山河建设有限公司网站,google搜索引擎入口google,淘宝客怎么做直播网站,成都高新区制作网站阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 零:导入 1:UI测试 2:XMind 一:项目介绍 1&#xff…

 

阿华代码,不是逆风,就是我疯

你们的点赞收藏是我前进最大的动力!!

希望本文内容能够帮助到你!!

 

目录

零:导入

1:UI测试

2:XMind

一:项目介绍

1:访问链接

2:主要测试页面

(1)登录页面

(2)博客列表页面

(3)博客详情页面

(4)发布博客页面

3:主要功能

一:测试用例设计

二:创建blog_test测试文件

1:引入依赖

(1)selenium依赖

(2)自动扫描更新浏览器驱动

(3)主要用于屏幕截图

2:实现工具类

(1)创建驱动对象

(2)屏幕截图

三:登录页面测试

1:页面加载测试

2:正常登录情况

3:登录失败测试

(1)错误展示

(2)完整代码

四:博客详情页测试

1:页面加载测试

五:博客发布页测试

1:检查发布博客功能


 

零:导入

本系列文章将对博客系统项目进行自动化UI测试

1:UI测试

什么是UI测试呢——全称是用户界面测试(User Interface Testing)

这里包含用户界面的布局测试,元素的显示,功能是否完好等等,本文将主要对我们的功能方法进行自动化接口测试

2:XMind

这是一款脑图软件,我们可以利用这款软件,编写我们的测试用例,非常的方便,小伙伴们可以自行下载,以下测试用例使用XMind软件进行编写

一:项目介绍

1:访问链接

博客登陆页

用户名和密码后台私信阿华哈

2:主要测试页面

(1)登录页面

(2)博客列表页面

(3)博客详情页面

(4)发布博客页面

3:主要功能

用户登录,查看博客,发布博客,博客编辑

二:测试用例设计

三:创建blog_test测试文件

1:引入依赖

(1)selenium依赖

        <dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>4.0.0</version></dependency>

(2)自动扫描更新浏览器驱动

简单理解即可:自动下载和配置浏览器所需的驱动——该库可以自动检测系统中安装的浏览器版本,并根据版本信息下载相应的 WebDriver 二进制文件,避免了手动下载和配置 WebDriver 的繁琐过程

        <dependency><groupId>io.github.bonigarcia</groupId><artifactId>webdrivermanager</artifactId><version>5.5.3</version></dependency>

(3)主要用于屏幕截图

commons-io 是 Apache Commons 项目下的一个工具库,它提供了一系列用于处理输入输出(I/O)操作的实用类和方法,简化了 Java 中文件、流、字符串等的操作。

<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version></dependency>

2:实现工具类

这里是我们测试常用的重复代码,主要是创建驱动和屏幕截图

(1)创建驱动对象

    /*** 创建驱动对象* @return*/public static WebDriver createDriver(){if(driver == null){WebDriverManager.chromedriver().setup();ChromeOptions options = new ChromeOptions();options.addArguments("--remote-allow-origins");driver = new ChromeDriver(options);driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(2));}return driver;}

(2)屏幕截图

细节:

①截图按天为单位进行管理

②这一行代码是截图的核心

第一步:driver变量是WebDriver类型,代表一个浏览器驱动,TakeScreenshot是Selenium提供的接口,提供了屏幕截图方法

这里将 driver 对象强制转换为 TakesScreenshot 类型,在调用截图方法

注:不是所有的 WebDriver 实现类都能直接转换为 TakesScreenshot 类型,不过常见的浏览器驱动(如 ChromeDriver、FirefoxDriver 等)都实现了这个接口,所以这种转换通常是ok的

第二步:OutputType是 Selenium 提供的一个枚举类,定义了截图的输出类型是FILE文件!

File srcFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
    /*** 获取当前屏幕截图的时间*/public List<String> getTime(){SimpleDateFormat sim1 = new SimpleDateFormat("yyyyMMdd-HHmmssSS");SimpleDateFormat sim2 = new SimpleDateFormat("yyyyMMdd");String fileName = sim1.format(System.currentTimeMillis());//文件格式名称,在集合中下标为1String dicName = sim2.format(System.currentTimeMillis());//文件夹格式名称,在集合中下标为0List<String> list = new ArrayList<>();list.add(dicName);list.add(fileName);return list;}/*** 获取屏幕截图*/public void getScreenShot(String str) throws IOException {List<String> list = getTime();//dir+filename
// ./指的是当前的项⽬路径下,也就是blog_test下
// ./src/test/java/com/blogWebAutoTest/dirname/filename
// ./src/test/java/image/20230212/test01_20230212-123030毫秒.pngString fileName = "./src/test/java/image/" + list.get(0) + "/" + str + "_" + list.get(1) + ".png";File srcFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);FileUtils.copyFile(srcFile,new File(fileName));}

四:登录页面测试

1:页面加载测试

这里我们可以检查页面上的元素是否能被找到,比如说,提交按钮,用户名,密码等等

    /*** 检查页面是否加载成功*/public void loginPageRight(){driver.findElement(By.cssSelector("body > div.container-login > div > h3"));driver.findElement(By.cssSelector("#submit"));}

2:正常登录情况

第一步:我们需要先清空一下我们用户名和密码的输入框,很重要这一步,(不清空可能会和之前测试中的字符串拼接)

第二步:给两个输入框赋值

第三步:提交

第四步:检查是否登陆成功了呢?那看我们登陆成功后跳转的页面里的元素有没有加载出来嘿嘿~~

注:这里我们的屏幕截图方法传入的字符串参数,是当前类的名字。

    /*** 检查正常登录情况*/public void loginSuc() throws IOException {//每次登录前先清空一下我们的输入框driver.findElement(By.cssSelector("#username")).clear();driver.findElement(By.cssSelector("#password")).clear();driver.findElement(By.cssSelector("#username")).sendKeys("zhangsan");driver.findElement(By.cssSelector("#password")).sendKeys("123456");driver.findElement(By.cssSelector("#submit")).click();//TODO:点击后通过检查页面元素判断是否登陆成功//这里挑选元素也是有讲究的:公共的都具备的特点,这里我找的是"文章"这个元素和"头像所处的那一个框框"driver.findElement(By.cssSelector("body > div.container > div.left > div > div:nth-child(4) > span:nth-child(1)"));driver.findElement(By.cssSelector("body > div.container > div.left > div > div:nth-child(4) > span:nth-child(1)"));//断言String expected = driver.getTitle();assert expected.equals("博客列表页");getScreenShot(getClass().getName());driver.navigate().back();}

3:登录失败测试

这里的步骤其实跟上面类似

但是,有一个问题要注意:这里的弹窗不属于我们当前页面句柄管理,我们需要去切换句柄到弹窗,才能对弹窗做处理,处理完弹窗,句柄会自动切换回我们当前页面。

还有一个很ex的点:你去切换句柄到弹窗的时候,可能代码执行速度太快,当前弹窗元素还没加载出来呢,这就会报错

(1)错误展示

我们把这个显示等待注掉,就g了——NoAlertPresentException!!!!

(2)完整代码

    /*** 测试登录失败*/public void loginFail() throws IOException, InterruptedException {//TODO:确保登录输入框中是没有东西的//方法一:刷新页面
//        driver.navigate().refresh();//方法二:清除输入框中的内容,这里在登录输入框中已经实现driver.navigate().refresh();driver.findElement(By.cssSelector("#username")).sendKeys("zhangsan");driver.findElement(By.cssSelector("#password")).sendKeys("123");driver.findElement(By.cssSelector("#submit")).click();//        String res = driver.findElement(By.cssSelector("body")).getText();//处理方式不同,操作不一样//处理弹窗WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(3));//就是加载的太慢了,纯逆天!!!!wait.until(ExpectedConditions.alertIsPresent());Alert alert = driver.switchTo().alert();String res = alert.getText();alert.accept();getScreenShot(getClass().getName());
//        System.out.println(res);assert res.equals("密码错误");}

五:博客详情页测试

1:页面加载测试

public class ListPage extends AutotestUtils {public static String url = "http://39.105.158.244:8080/blog_list.html";public ListPage(){super(url);}/*** 检查博客页面是否能正常显示*/public void listPageLoadRight() throws IOException {driver.findElement(By.cssSelector("body > div.nav > a:nth-child(5)"));getScreenShot(getClass().getName());}
}

六:博客发布页测试

1:检查发布博客功能

package tests;import common.AutotestUtils;
import org.openqa.selenium.By;/*** Created with IntelliJ IDEA.* Description:* User: Hua YY* Date: 2025-02-23* Time: 15:25*/
public class EditPage extends AutotestUtils {public static String url = "http://39.105.158.244:8080/blog_edit.html";public EditPage(){super(url);}/*** 检查写博客是否能正常发布*/public void editSuc(){driver.findElement(By.cssSelector("#title")).sendKeys("我是大大怪");driver.findElement(By.cssSelector("#submit")).click();}
}

 

 

http://www.dtcms.com/wzjs/218084.html

相关文章:

  • 深圳网站建设公司平台sem培训班学费哪个好
  • 企业门户网站开发要多少钱自动点击器免费下载
  • 湛江cms建站成都seo工程师
  • 网站建设 找vx cp5173东莞网站建设公司
  • 公众号购物做网站还是小程序旅行网站排名
  • 网站文件保护怎么做网上销售平台有哪些
  • 网站建设互联网 政府系统seo入门基础教程
  • 怎么做网站和服务器吗群推广
  • 营销网站建设的原则百度营销平台
  • 青海旭云网络做网站需要多少钱大数据精准营销的策略
  • 华为云建设网站品牌策划案
  • gif图片制作器seo 页面
  • app开发网站开发教程长沙谷歌seo
  • 商城网站建设非国产手机浏览器
  • 运营一个app大概多少钱南昌seo顾问
  • 苏州网站优化山东最新资讯
  • 制作英文网站女儿考试没圈关键词
  • 做网站培训宁波seo企业推广
  • ps做专业网站南昌百度推广联系方式
  • 深圳网络营销推广中心德州seo整站优化
  • 根据网站做app营销案例分析
  • 广州牌手表网站360搜索引擎地址
  • wordpress 国内广告贵州网站seo
  • 胶州国际网站建设效果国内搜索引擎有哪些
  • 网站的滚动图片怎么做如何自己创建一个网站
  • 如何用区块链加密wordpress旺道智能seo系统
  • 网站建设与管理模拟题1企业网站建设要多少钱
  • 企网官方网站新网
  • 站规划在网站建设中的作用广州番禺发布
  • 上海装修公司网站建设百度推广费