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

OJ系统C端UI自动化测试

一、思维导图

二、代码编写

概述:针对C端进行主要功能进行自动化测试.

基本逻辑:

  • 在未登录状态下访问题目->访问未完赛竞赛页面->访问历史竞赛页面
  • 登录页-> 测试登录失败: a.账号正确验证码错误b.账号错误,验证码正确c.账号和验证码都为空d.获取验证码次数最大 e.验证码已失效   || 第一次登录即为注册  || 登录成功
  • 登录成功跳转题库页测试页面元素是否存在->测试翻页->测试搜索->测试答题
  • 跳转竞赛页面测试页面元素是否存在->测试机未完赛页面->测试翻页->测试翻页->报名竞赛->参与竞赛
  • 跳转到历史竞赛->测试翻页->测试竞赛练习->测试竞赛排名
  • 退出登

1.前置工作

引入依赖

    <dependencies>
        <dependency>
            <groupId>io.github.bonigarcia</groupId>
            <artifactId>webdrivermanager</artifactId>
            <version>5.8.0</version>
            <scope>test</scope>
        </dependency>
        <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>
    </dependencies>

2.创建公共类

  • 里面包含统一创建的driver,截图,翻页功能,答题功能,提取出来的公共类

3.未登录访问各个页面

  • 题目页面

a.在右上角显示登录

b.未登录不允许答题

c.各个元素是否显示正常

  • 竞赛页面

a.未完赛 ---点击报名,提示需要报名才能参加竞赛

b.历史竞赛页面--------竞赛练习,查看排名

4.验证码登录

  • 登录失败

a.账号正确,验证码错误

b.账号错误,验证码错误

c.账号和验证码都为空

d.获取验证码最大次数

e.验证码已失效

  • 注册

即第一次获取验证码登录为注册过程,入库

  • 登录成功

账号和验证码都正确,进入登录页

5.题库页面

  • 翻页

a.调整展示数量

b.前后翻页

c.指定跳转页面

  • 搜索

a.根据题目名称搜搜

b.根据题目难度搜索

c.重置

  • 答题

a.查看页面元素是否俱全

b.编写正确代码||编写错误代码

c.交提代码,检查通过||未通过元素是否齐全

d.测试,下一题,上一题,返回题库页面

6.竞赛页面

1.未完赛页面

a.翻页

  • 调整展示数量

  • 前后翻页

  • 指定跳转页面

b.报名竞赛

  • 报名竞赛
  • 已报名

到达规定时间

  • 参与竞赛 ->测试答题功能一致

2.历史竞赛

  • 竞赛练习
  • 竞赛排名

7.退出登录

删除登录记录,token等个人信息

三、代码参考

在test_c目录下

OjAutoTest · 九月YJ/UI自动化测试 - 码云 - 开源中国

四、总结

注意:
1.测试要关注测试的先后顺序

2.确保页面元素存在,确保不是动态的,是动态的需要确定的定位到具体的元素

3.确保是测试登录后再测试其他页面,其他页面都需要登录才能测试其他页面

4.驱动关闭最后确保是在执行最后,避免在执行其他用例的时候报错

5.使用截图工具确保精确到时分秒毛秒,避免执行程序过快会出现截图覆盖

6.隐式等待时间确保浏览器能渲染出元素,保证网络畅通

7.使用无头模式启动
————————————————

亮点:

只创建一次驱动对象,避免每个用例重复创建驱动对象造成时间和资源的浪费。

 使用参数化:保持用例的简洁,提高代码的可读性
使用测试套件:降低了测试人员的工作量,通过套件一次执行所有要运行的测试用例。


使用了等待:提高了自动化的运行效率,提高了自动化的稳定性,减小误报的可能性。

使用了屏幕截图:方便问题的追溯以及问题的解决

 

 

    http://www.dtcms.com/a/112711.html

    相关文章:

  • Kubernetes 集群搭建(一):从环境准备到 Calico 网络插件部署
  • 自定义填充 cad
  • SpringCloudGateWay
  • spring security 过滤器链相关初始化过程
  • 使用 Elastic 实现端到端的大语言模型(LLM)可观测性:洞察生成式 AI 应用这个不透明的世界
  • C/C++测试框架googletest使用示例
  • 用HTML.CSS.JavaScript实现一个贪吃蛇小游戏
  • 基于Go语言实现一个网络聊天室(连接Redis版)
  • Kubernetes集群管理详解:从入门到精通
  • Eliet Chat开发日志:信令服务器注册与通信过程
  • JAVA单例模式
  • 2023-2024总结记录
  • leetcode二叉树刷题调试不方便的解决办法
  • 【Redis】服务端高并发分布式结构
  • 使用Scrapy官方开发的爬虫部署、运行、管理工具:Scrapyd
  • 网安小白筑基篇五:web后端基础之PHP
  • Springboot----@Role注解的作用
  • C++设计模式-解释器模式:从基本介绍,内部原理、应用场景、使用方法,常见问题和解决方案进行深度解析
  • 【Python使用】嘿马推荐系统全知识和项目开发教程第2篇:1.4 案例--基于协同过滤的电影推荐,1.5 推荐系统评估【附代码
  • 【Android】界面布局-线性布局LinearLayout-例子
  • 编程能力的跃迁时刻:技术革命与认知重构的交响曲
  • MySQL索引原理:从B+树手绘到EXPLAIN
  • 合肥京东运营服务商TOP5推荐
  • Axure数据可视化科技感大屏设计资料——赋能多领域,展示无限价值
  • C# 类库生成后自动复制到指定目录
  • Mysql 集群架构 vs 主从复制架构
  • PostgreSQL LIKE 操作符详解
  • 如何在windows 环境、且没有显卡的情况下用python跑通从ModelScope下载的大模型的调用
  • FPGA状态机思想实现流水灯及HDLBits学习
  • 02.unity各个面板说明