分享几个自动化测试的练手项目

news/2024/4/24 20:01:58/

学习自动化测试最难的是没有合适的项目练习。 测试本身既要讲究科学,又有艺术成分,单单学几个 api 的调用很难应付工作中具体的问题。

你得知道什么场景下需要添加显性等待,什么时候元素定位需要写得更加优雅,为什么需要断言这个元素,而不是另一个。你得有合适的页面控件才能练习某种操作。

现在网上关于练习自动化的文章有很多,但是可以供学习使用的练习项目却非常稀缺。有的项目操作比较简单,无法达到练习各种操作的效果。有的项目非常复杂,光熟悉业务就要半个月。

可以说,一个好的练习项目对掌握好自动化测试至关重要。练习项目的业务不应该太复杂,否则我们需要花很多时间理清业务关系。 也不能太简单,否则我们无法练习到有用的技能。 项目应该尽可能涵盖较多的知识点,让我们在学习过程中反复练习不太熟练的技能, 而且它最好有通用的管理权限,方便我们自己选择角色等等要求。

我推荐几个还算不错的在线练习项目,如果你苦于没有项目练习,可以去看看。

第一个项目叫 JpetStore, 网址是: petstore.octoperf.com/actions/Cat…

这是一个电商项目,你可以在网站上购买各种宠物。 常见的电商网站操作在这个项目中都可以找到,比如注册,登录,查找商品,选择商品,添加购物车,下单,查看定位,确认收货地址等等。

网站需要的个人信息并不需要真实的,付款也不需要真的付钱,并不需要担心个人信息泄漏等问题。而且这个项目由大名鼎鼎的 mybatis 提供,使用 spring 框架搭建, 很多Java 开源项目都用它来举例子。

业务简单,流程清晰,操作类型丰富,几乎是完美的练习平台,非常适合练习 web 自动化测试。

第二个项目叫 letcode, 项目地址是 letcode.in/test

这是一个网页 ui 元素展示网站,列举了几乎所有流行的网页控件,如果你正在学 selenium 这样的框架,那可以赶紧用这个项目练习一下 selenium 的操作方法。比如点击、拖动、切换等常见的页面元素,在这个网站上都有现成的控件可以操作。你只需要进入首页,然后点击合适的控件,就可以进入这个控件的专题界面。

第三个项目叫 booker, 项目地址是 automationintesting.online/#/

它是一个在线预定房间的项目,有点类似携程、艺龙这样的网站。你可以在网站上通过滑动选择房间,然后输入自己的信息完成房间预定。这个网站使用 RESTful 风格的接口,你可以分析后端接口和前端的交互,对输入信息的合法性进行校验, 适合练习前后端交互和联调。

可能很多人会说:为什么不直接用真实项目,而要用这些在线的练习项目。 首先,我还是建议能用真实项目就直接用真实项目,如果没有再考虑练习项目。 你也可以在学习还不是特别熟练的时候先用练习项目上手, 熟练后再通过真实项目实战。

练习项目还有一些额外的好处:

没有对自动化测试工具做拦截和屏蔽,你可以直接上手 selenium 这样的工具,如果在真实项目中,很有可能被检测到,禁止通过 selenium 访问
对个人信息保护更直接。练习项目通过你可以随意构造自己的身份信息,不用担心自己的信息泄漏。
用户交互往往更简单直接。
质量一般没有正式项目那么高,你更容易找到 bug, 有点成就感。
当然它也有明显的不足:

设计会比较丑,可能会影响你的心情
不支持大规模的并发操作,不然会崩
业务逻辑比较简单,很难模拟真实的业务复杂度。
总的来说,在没有正式的项目经验前,找到一个合适的练手项目,把自己的专业知识转变成可以应用的技能,还是非常好的。希望对正在学习的同学有帮助,如果你也有很好的练习项目,欢迎和我一起分享。

如果你还有许多困惑,那么我整理的视频资源和文档会是你的良师益友,或许可以给你带来一些实际性的帮助与突破【保证100%免费】

 

 


http://www.ppmy.cn/news/47778.html

相关文章

如何建立到NAS中新增容器的ssh连接

注:首先需按照教程建立Zerotier连接,然后进入新建的nginx镜像,为root用户建立密码。 查看容器类型 Debian 系镜像: cat /etc/issue Redhat 系镜像: cat /etc/redhat-release Alpine 系镜像: cat /etc/os-release 安装并启动ssh apt-get …

C# GC垃圾回收

C#中的垃圾回收(Garbage Collection,简称GC)是自动管理内存的一种机制。在C#中,开发人员不必再手动地去管理内存,也不需要关心对象的生命周期和销毁,而是由GC在程序运行时自动完成这些操作。下面是关于C#中…

C++【深入理解多态】

文章目录 一、多态概念与实现(1)多态的概念(2)怎么构成多态(3)虚函数重写的2个例外(4)经典剖析巩固知识点(5) override 和 final(6)小…

【Linux】虚拟机的克隆

【想要克隆虚拟机,被克隆的虚拟机必须是关机状态;】 一、克隆虚拟机 1、右击想要克隆的虚拟机 2、进入到这个页面后点击“下一步” 3、进入到这个页面后点击“下一步” 4、进入这个页面后选“创建完整克隆”,再点击下一步 5、最好将位置改成…

月薪10k和40k的程序员差距有多大?

程序员的薪资一直是大家关注的焦点,相较于其他行业,程序员的高薪也是有目共睹的,而不同等级的程序员处理问题的方式与他们的薪资直接挂钩。 接下来就一起看一下月薪10k、20k、30k、40k的程序员面对问题都是怎么处理的吧! 场景一 …

Unity编写Shader基本知识

返回目录 大家好,我是阿赵。 这里通过手写一个最简单的shader,来介绍一下在Unity里面编写Shader的一些基础知识。 一、Shader基本结构 新建一个shader,把里面的内容都删掉,然后输入下面这些内容 shader "testShader"…

如何使用Redis缓存 ?

为什么能用Redis做缓存 ? 因为Redis基于内存,读写速度快 Redis 缓存的使用 首先需要读取数据时,前去redis查看是否有该数据如果有,则直接返回,如果没有就要去数据库查找然后更新redis Redis 缓存的类型 只读缓存 …

JavaScript经典教程(二)-- CSS基础部分

179:HTML基础部分(元素分类、特性、特殊元素等) — 补充 1、盒子模型 定义:一个元素在页面中所占的位置大小,叫盒子模型。 包含的样式:即影响元素大小的样式: width、height、margin、padding…

linux PAM模块简介

PAM模块简介 1. 介绍1.1 概念1.2 验证过程简述 2. 配置文件介绍2.1 PAM的模块类型2.2 PAM的控制标记2.3 PAM的模块路径 3. 验证机制3.1 login的验证机制流程3.2 pam相关文件 4. 示例4.1 ssh远程登录控制4.2 禁止账号间使用su命令切换4.3 限制root从tty1,tty2,tty5登…

SpringBoot自动配置原理分析

前言: 虽然工作中一直使用的是自研的一款基于spring的框架,但是随着springboot在各公司的广泛使用,公司的一些新项目也开始逐渐使用springBoot了,那么springBoot的一些特性就要仔细学习一下了。 什么是自动配置? 还记…

找零问题1-最少硬币

文章目录 找零问题1-最少硬币程序设计程序分析找零问题1-最少硬币 【问题描述】 给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。(你可以认为硬币的数量是无限的) 【…

蓝桥杯欲伸手CTF?有多远爬多远

注意:网络安全类比赛 或者说 CTF 参赛不会需要任何费用 只有国赛/省赛有可能会收取一定运维费用 其他比赛都不会收费 望周知。 先来看个特离谱的事情 早上起床看到几位师傅的朋友圈一脸懵,再仔细一看,好嘛。。。。。。 先看看探姬的回复 接下…

不邻接植花

题目描述 有 n 个花园,按从 1 到 n 标记。另有数组 paths ,其中 paths[i] [xi, yi] 描述了花园 xi 到花园 yi 的双向路径。在每个花园中,你打算种下四种花之一。 另外,所有花园 最多 有 3 条路径可以进入或离开. 你需要为每个…

javaScript---js如何实现继承

目录 1、构造函数继承 2、原型链继承 3、组合继承 4、class继承 5、寄生组合继承 JavaScript 是以对象为基础,以函数为模型,以原型为继承的面向对象开发模式。 javascript继承的作用: 可以不调用“父类”的构造方法就创造新的实例&…

设计模式-结构型模式之桥接模式

2. 桥接模式 2.1. 模式动机 设想如果要绘制矩形、圆形、椭圆、正方形,我们至少需要4个形状类,但是如果绘制的图形需要具有不同的颜色,如红色、绿色、蓝色等,此时至少有如下两种设计方案: 第一种设计方案是为每一种形状…

js面试题

在全局作用域下声明了一个变量 arr, 它的初始值是一个空数组 第二段代码,循环计数器变量i的初始值为0,循环条件是i的值小于2, 也就是说当i的值为0或者1时, 循环条件才能成立 才能够进入到循环体 当i的值为2时循环条件不成立&…

ctfshow愚人杯web复现

easy_signin 题目url base64解码是face.png&#xff0c;尝试flag.txt和flag.php&#xff0c;base64加密后传入都不对&#xff0c;用index.php加密后传入&#xff0c;看源码 将后面的base64解密得到flag 被遗忘的反序列化 源码 <?php# 当前目录中有一个txt文件哦 error_r…

Linux FTP服务

FTP服务 作用 传输文件 端口 FTP服务器默认使用TCP协议的20、21端口与客户端进行通信 20端口用于建立数据连接&#xff0c;并传输文件数据 21端口用于建立控制连接&#xff0c;并传输FTP控制命令 模式 FTP数据连接分为主动模式和被动模式 主动模式&#xff1a;客户端告诉服务端…

记一次fastjson反序列化到内网靶标

声明&#xff1a;文中涉及到的技术和工具&#xff0c;仅供学习使用&#xff0c;禁止从事任何非法活动&#xff0c;如因此造成的直接或间接损失&#xff0c;均由使用者自行承担责任。 点点关注不迷路&#xff0c;每周不定时持续分享各种干货。 众亦信安&#xff0c;中意你啊&a…

微信跨平台方案Donut快速上手

一、Donut简介 Donut 是微信开发出的多端框架&#xff0c;用于支持使用小程序原生语法开发移动应用的框架&#xff0c;开发者可以一次编码&#xff0c;就可以编译出小程序和 Android 以及 iOS 应用&#xff0c;实现多端开发。能够帮助企业有效降低多端应用开发的技术门槛和研发…