selenium+JUnit的自动化测试

news/2024/7/8 3:58:33 标签: selenium, 测试工具, junit

课前导读:

你学完一篇,你就多会一项技能,多多少少对你还是有点帮助的不是吗?~~~

selenium是一款开源免费的web自动化测试工具,支持多浏览器,支持多系统,支持多语言,而且其中提供了很多可供测试的API,使用十分便捷。

JUnit是一款Java单元测试的工具,用于优化我们的自动化脚本


一、项目准备

1、导入对应的依赖

<dependencies>
        <!--        操作selenium的包-->
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>4.0.0</version>
        </dependency>
        <!--        保存屏幕文件需要用到的包-->
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.6</version>
        </dependency>
        <!--        导入屏幕截图需要的包-->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>1.2.3</version>
            <scope>test</scope>
        </dependency>
        <!--        导入junit需要的包-->
        <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>

2、进行浏览器打开对象的创建,避免后面多次创建,消耗内存,后续只需调用对应方法即可完成对象的创建,设置隐式等待,防止页面渲染过慢导致的错误。

 3、通过系统时间命名文件的方式创建屏幕截图,便于对测试的观察。

 四、其他类通过继承的方式,使用父类的静态方法进行创建对象并使用屏幕截图

 五、X社区自动化测试思维导图 


二、登陆页面自动化测试

1、登陆页面为所有测试的开始,所以我们先进行页面的打开,通过BeforeAll注解确保页面在所以程序之前执行。

2、通过检查是否有X社区登陆这几个字,检查是否有登陆按钮的登陆二字,测试此页面是否是登陆页面

3、通过“点击注册“按钮的点击,检查是否能够正常跳转

 4、使用多参数化注解进行正常成功的登陆注册

 5、对用户名和密码为空的情况下点击登陆进行测试

6、使用多参数化注解对用户名或密码错误的情况进行测试

 

 


三、注册页面自动化测试

1、检查注册页面能否正常打开,是否能获取到X社区注册文本和注册文本

2、检查已有密码?进行登录按钮能否正常跳转

3、 测试输入框为空,直接点击注册的情况

4、 通过多参数化注解对密码不符合规定长度的情况进行测试

5、通过多参数化注解对正确的注册情况进行测试


四、社区列表页自动化测试

1、针对为登录状态下是否能通过输入url的形式进行页面跳转的情况进行测试

2、先进行登录,获取登录状态进入社区列表页

 3、通过获取用户头像和用户名判定是否进入了社区列表页

4、检查上面的导航栏链接是否能够正常跳转

 5、点击查看全文按钮,测试是否能正常返回社区详情页


五、社区详情页自动化测试

1、测试未登录状态下是否能通过url的形式直接访问社区详情页

2、进行登录,保证测试的登录状态

3、在社区列表页点击查看全文按钮测试是否正确进入社区详情页

 4、检查页面导航栏是否能够正常跳转


六、社区编辑页

1、检查未登录状态下是否能从url直接访问博客编辑页

2、进行登录,保证登录状态

 3、测试未输入内容点击发布文章的情况

4、测试社区编辑页的markdown标识是否能正常使用

 5、测试正确编写文章点击提交文章后能否正确返回社区列表页

 6、测试导航栏是否能正常跳转

 7、最后关闭页面,使用驱动资源

 


七、测试套件和屏幕截图

1、通过测试套件将每个类放入进行一起测试

2、屏幕截图在每个Test注解的最后面,通过当前时间的命名格式放回每个页面测试时的截图

,通过对这30个自动化测试用例的截图可以清楚的看见每一步的执行流程。

 


总结:

这次通过对自己做的X社区系统的自动化实战训练,提升了我对自动化编码的能力,对seleniumjunit的使用更加熟练。

所有成功的开始还得基于牢靠的基础,努力学习,坚持编码,编程伴随每一天!


http://www.niftyadmin.cn/n/218773.html

相关文章

C++的Lambda匿名函数

Lambda函数的详细介绍 一、背景介绍 Lambda匿名函数&#xff0c;在c11后被提出来&#xff0c;主要因写法简单&#xff0c;可以把简单函数写成匿名函数&#xff0c;直接使用&#xff0c;而不必单独声明一个函数。缺点是不太容易理解。 二、具体使用 auto func [capture] (pa…

YOLOV7运行步骤(推理、训练全过程)

下载源代码&#xff1a;点击下载 执行以下命令安装requirements.txt中的相关依赖 pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple官网下载权重yolov7.pt&#xff08;测试使用&#xff09;、yolov7-tiny.pt&#xff08;训练使用&#xff0c;这里…

【自定义表格穿梭框】自定义封装jqgrid表格穿梭框,支持分页复选全选(附完整源码及效果图)

【写在前面】其实之前业务中也有这个方面的需求&#xff0c;但是总觉得自己写的有点乱&#xff0c;此时也就借这个机会重新封装一个公共的函数去实现这个穿梭框的效果&#xff0c;支持分页勾选&#xff0c;页面展示已选中和未选择的数据&#xff0c;使得系统操作更友好。 涉及知…

【软件测试】入门基础

目录 1. 软件测试的生命周期 &#xff08;1&#xff09;测试人员在软件开发生命周期做的事情 &#xff08;2&#xff09;测试人员在软件测试生命周期做的事情 &#xff08;3&#xff09;测试报告怎么写&#xff1a; 2. 如何描述一个bug 3. 如何定义bug的级别 4. bug的生命周期 …

开放原子训练营(第三季)RT-Thread Nano学习营-第一课心得

1、简介 本人学习并使用 RT-Thread 一个重要的原因是&#xff1a;它是一款由国内开源社区主导开发的开源实时操作系统&#xff01;&#xff01;&#xff01; 为国产化点赞&#xff0c;项目中如果有要求国产化的&#xff0c;肯定也绕不开它。 RT-Thread支持国产化芯片&#xff…

数据库系统概论(第五版) 王珊 第四章 课后习题答案

目录 &#xff08;一&#xff09;数据库安全性の概念 1. 什么是数据库的安全性 2.数据库安全性和计算机系统的安全性有什么关系? 4.试述实现数据库安全性控制的常用方法和技术 5.什么是数据库中的自主存取控制方法和强制存取控制方法? &#xff08;二&#xff09;考试…

解决macOS IntelliJ IDEA 卡顿问题

写在前面的话1&#xff1a;我在撰写这篇博客时候&#xff0c;所用的IntelliJ IDEA版本是IntelliJ IDEA 2022.3.3 (Ultimate Edition)&#xff0c;你需要知道可能对于不同的IntelliJ IDEA版本会有一定的差异 写在前面的话2&#xff1a;如果我这篇博客可以帮助到你&#xff0c;请…

Java模拟rank() over()函数获取分组排名的方法设计及实现

背景 考试批次班级姓名语文202302三年一班张小明130.00202302三年一班王二小128.00202302三年一班谢春花136.00202302三年二班冯世杰129.00202302三年二班马功成130.00202302三年二班魏翩翩136.00 假设我们有如上数据&#xff0c;现在有一个需求需要统计各学生语文单科成绩在班…