前述
- 针对个人博客项目进行测试,个人博客主要由七个页面构成:注册页、登录页、个人博客列表页、博客发布页、博客修改页、博客列表页、博客详情页,主要功能包括:注册、登录、编辑并发布博客、修改已发布的博客、查看详情、删除博客以及注销等功能。对于个人博客的测试主要就是针对主要功能进行测试,在这里,由于注册功能比较特殊和麻烦,所以暂且不测。
- 个人博客地址:登录页面
- 自动化测试一般步骤:1)使用脑图编写web自动化测试用例
2)创建自动化项目,根据用例来实现脚本
一、思维导图
二、代码编写
- 根据脑图进行测试用例的编写:每个页面一个测试类,然后再各个测试类中进行测试用例的编写。
- 注意公共属性需要单独放一个类,方便进行代码复用。
- 使用测试套件便于运行以及修改。
- 创建启动以及现场截图就是会频繁进行复用,所以单独创建一个类进行存储。
- 注意添加隐式等待,为了确保页面正确加载显示。
1.添加相关依赖pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>blog_sm_Test</artifactId><version>1.0-SNAPSHOT</version><!-- <build>-->
<!-- <plugins>-->
<!-- <plugin>-->
<!-- <artifactId>maven-surefire-plugin</artifactId>-->
<!-- <version>2.22.2</version>-->
<!-- </plugin>--><!-- </plugins>-->
<!-- </build>--><dependencies><!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --><dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>3.141.59</version></dependency><!-- https://mvnrepository.com/artifact/commons-io/commons-io --><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.11.0</version></dependency><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter</artifactId><version>5.8.2</version><scope>test</scope></dependency><dependency><groupId>org.junit.platform</groupId><artifactId>junit-platform-suite</artifactId><version>1.8.2</version><scope>test</scope></dependency></dependencies><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target></properties></project>
2.新建包并在包下创建测试类以及公共类
所建类和包图示
1)公共类InitAndEnd
- 公共类实现的功能有两个即创建驱动进行相关初始化,和保存截图
- 注意:在保存现场截图的时候命名是按时间来进行文件夹的划分,然后图片的名称要体现出测试类的类名,方便进行问题的追溯。
- 文件名进行动态获取。
2)登录页面测试blogLogin_Test
- 创建驱动打开页面。
- 测试页面是否正常打开。
- 异常登陆测试——用户名和密码都为null。
- 异常登陆测试——用户名或密码错误。
- 正常登录测试。
3)个人博客列表页测试myblogList_Test
- 测试页面是否可以正常打开。
- 测试按钮是否有效,即点击按钮会不会执行相关的功能。
- 测试未登录状态下会不会到达这一个页面。
4)博客发布页测试blogAdd_Test
- 检查元素是否被加载出来。
- 错误发表一篇博客——不输入标题,然后对相关url进行比对,观察是否发布成功。
- 正确发表一篇博客。
- 跳转到博客详情页,观察博客是否发布成功。
5)博客修改页测试blogChange_Test
- 点击编辑按钮并查找元素。
- 将博客的标题进行修改。
- 观察博客修改是否成功。
6)博客删除测试blogDelete_Test
- 点击删除按钮并进行删除操作。
- 观察博客是否被删除。
7)博客详情页测试blogList_Test
- 检查元素是否完成加载。
- 检查未登录的状态下能否直接访问该页面。
- 验证完后进行登录,方便后续测试。
8)注销测试
- 执行注销操作。
- 进行弹出的提示框的选择。
- 测试取消注销和确定注销后结果。
- 比对url观察结果。
9)测试套件SuiteTest
测试套件的运行,使用的是以测试类作为执行顺序的方式。
3.代码参考
blog_sm_Test测试代码
三、代码测试
所有用例均通过,并且有保留截图:
四、亮点
- 使用了JUnit5中提供的注解:避免生成过多的对象,造成资源和时间的浪费,提高了自动化的执行效率。
- 只创建一次驱动对象,避免每个用例重复创建驱动对象造成时间和资源的浪费。
- 使用参数化:保持用例的简洁,提高代码的可读性。
- 使用测试套件:降低了测试人员的工作量,通过套件一次执行所有要运行的测试用例。
- 使用了等待:提高了自动化的运行效率,提高了自动化的稳定性,减小误报的可能性。
- 使用了屏幕截图:方便问题的追溯以及问题的解决。