自动化测试之争:code vs codeless

news2024/12/23 11:17:46

在TesterHome看到的一个话题,当我们选择做自动化时是否需要code 或者codeless。

code方案

用code去做自动化,实现过程就是拿个IDE撸代码。

  • python + pytest/unittest + appium/selenium/requests + ...

  • Java + Junit/testNG + appium/selenium/requests + ...

codeless工具

用codeless的方式做自动化,就是各种测试工具/框架方案,几乎可以不碰代码。

  • JMeter
  • postman
  • UFT
  • 基于各种开源/自研的测试平台

混搭框架/库

在实际情况下,可能会出现很多混搭的方案。

  • Sweetest

比如,你写好了一个脚本用于解析excel中的自动化用例,如果脚本做的足够强大,那么编写用例的过程是面向excel的。Sweetest就是提供了这种方案。

  • seldom

比如,实现用例的过程主要通过code编写,偶尔需要读取excel实现参数化,脚本中实现了excel的解析,可以很方便的解析excel中的数据并用于用例的参数化,Seldom就提供了这种能力。

  • Robot framework

Robot framework编写用例不需要写代码,但要学一套DSL(领域特定语言),当需要为Robot Fremework封装个Library时,需要用到Python。

  • HttpRunner

HttpRunner2.x以JSON/YAML编写用例为主,偶尔用python写辅助函数,HttpRunner3.x 支持完全code。

当然,混搭技术/框架还有很多。

观点

我下个人观点,鼓励code,但不反对codeless。

鼓励code

为什么鼓励code,因为我是code的收益者。我真正开始学习编程并做自动化是在工作的第三年,很多同学刚做测试就开始code了,这一点比我厉害。那么,code带来什么好处呢?

  1. 编写的自动化用例更加灵活,想想写自动化的时候需要循环的执行一些操作,或根据某个条件判断执行,或者想随机的生成一些测试数据,工具要么不能满足,要么需要扩展,要么需要用更加繁杂的操作才能满足。对于coder者来说,只要你编程能力OK,一切需求都不是问题。

直接好处就这么一条,接下说说间接好处。

  1. 变得更加自信。有同学要说了,不就写个代码嘛,还写出优越感了。整个IT圈子还是崇尚技术的(说是我粉丝的人难道是因为我长的帅?哈哈),虽然,最终效率一样,因为你用了更难的方式做自动化测试,确实看上去更厉害一点儿。我有一个做了十几年开发的朋友,他一直觉得我会做自化是很厉害的技能。如果你做的是有一些门槛的工作,那么,你的自信就是在别人的不断肯定中建立起来的。

写写自动化只是入了code门而已,真正的好处是为你打开了编程的大门。

  1. 随着自动化用例越写越多,会给你带两个提升,一个是编程水平的提升,封装、设计模式,多线程,越写越高级。二是学会了很多库,ddt库、发邮件库、allure库。会的更多之后,你会尝试在工作中用编程提升自己的测试效率。我以前在测业务需求的时候也会开一个编辑器,时不时的要用Python计算一下数据或者批量的跑一下脚本。

更大的好处是涨工资。

  1. 谈钱就俗了,那你要不是交房租,要不要还房贷,要不要养老人和小孩。我们总有生活压力,那面试的时候,肯定技术好同学更能要到高薪,为什么要技术好的?code能力强的,招进来又不一定做自动化。你要知道,技术好其实代表了你学习能力更强。说明你可以承担更多有挑战的工作。谁不喜欢优秀的人呢?

如果在编程的世界遨游,你会收获更多。

  1. 比如,当我略懂Android/Flutter、Web开发之后,在测试这类应用时,我会对被测系统有更深的理解,在日常的测试过程中具备更强的debug能力,和开发交流更顺畅,能够推测出更多潜在bug。

不反对codeless

既然code好处多多,为什么不反对codeless?

  1. 某些场景工具更好用,比如,在日常调试接口过程中,复制浏览器的cURL,导入postman非常方便,再比如,压测接口的时候,JMeter真香啊~!

  2. 在一个code能力不强的测试团队,强推人人code是不现实,不是每个公司都BAT/TMD,我面过很多公司测试,他们待的测试团队只有几个人,甚至一两个人,就因为不会code,难道就不配碰自动化?既然有codeless工具,干嘛不先拿来直接用。总比什么都不做,什么都不会强太多了吧!

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1174463.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

volatile-无原子性案例详解

package com.nanjing.gulimall.zhouyimo.controller;import java.util.concurrent.TimeUnit;/*** author zhou* version 1.0* date 2023/11/5 7:56 下午*/ class MyNumber{int number;public synchronized void add(){number;} } public class VolatileNoAtomicDemo {public st…

git进阶

1、git:为分布式版本控制工具 2、 当新创建一个文件后,文件通过指令可以到达暂存区,暂存区是仓库和工作区的缓冲区域 当commit后,会把文件放入本地仓库,每一次commit都会创建一个版本 《小区域》 git status 《查看…

python- 学生信息管理系统

偶然整的学生信息管理系统一个学生信息管理系统,包括录入学生信息、查找学生信息、删除学生信息、修改学生信息、排序学生信息、统计学生总数和显示所有学生信息等功能 开发环境要求本系统的软件开发及运行环境具体如下。 操作系统:Windows 10。 Python…

知乎日报第三周总结

这周主要完成了评论的加载和长评论的展开与收起,同时完善了前面的内容,文章内容cell的滑动刷新改为滑动一个加载一个,这样就更加流畅;还有就是首次点击只先加载当前cell内容,这样就不会卡顿加载过多内容,剩…

MySQL(9):子查询

子查询 指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从MySQL 4.1开始引入。 SQL 中子查询的使用大大增强了 SELECT 查询的能力,因为很多时候查询需要从结果集中获取数据,或者需要从同一个表中先计算得出一个数据结果,…

python学习10

前言:相信看到这篇文章的小伙伴都或多或少有一些编程基础,懂得一些linux的基本命令了吧,本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python:一种编程语言&…

Mybatis技术原理详解之:使用Mapper形式和注解驱动的复杂映射开发

Mybatis技术原理详解之:使用Mapper形式和注解驱动的复杂映射开发 Mapper形式的复杂映射开发 一对一查询 一对一查询的模型 ⽤户表和订单表的关系为,⼀个⽤户有多个订单,⼀个订单只从属于⼀个⽤户 ⼀对⼀查询的需求:查询⼀个订…

AFL入门教学

1、AFL简介 AFL(American Fuzzy Lop)是一个面向安全的模糊测试工具,它使用了一个新的编译时插桩技术和遗传算法,可以自动发现触发目标二进程程序的测试用例,从而大大提高测试代码的功能覆盖率。 AFL官网:…

090基于web+springboot的中小企业设备管理系统

欢迎大家关注,一起好好学习,天天向上 文章目录 一项目简介技术介绍 二、功能组成三、效果图四、 文章目录 一项目简介 本中小企业设备管理系统管理员有个人中心,用户管理,员工管理,设备信息管理,配件信息管…

计算机报错找不到msvcp110.dll无法继续执行代码怎么解决?

msvcp110.dll文件丢失是一个相当常见的问题,尤其是在运行某些程序或游戏时。这个问题可能会导致程序无法正常运行,甚至可能导致系统崩溃。那么,面对这样的问题,我们应该如何来解决呢?下面,我将分享我解决问…

LabVIEW开发实时离子温度测量

LabVIEW开发实时离子温度测量 迈向核聚变发电的漫长旅程,旨在提供无限的清洁能源。离子温度是产生聚变点火条件中最重要的参数之一,快速简单地测量离子温度的技术至关重要。特别是对于未来的聚变反应堆来说,需要一种使用等离子体发出的物理现…

Python基础入门例程43-NP43 判断布尔值(条件语句)

最近的博文: Python基础入门例程42-NP42 公式计算器(运算符)-CSDN博客 Python基础入门例程41-NP41 二进制位运算(运算符)-CSDN博客 Python基础入门例程40-NP40 俱乐部的成员(运算符)-CSDN博客…

【Servlet】Servlet的生命周期

目录 一、Servlet的生命周期 二、Servlet的生命周期演示图 三、线程安全问题 四、解决线程安全问题 面试题 一、Servlet的生命周期 1.类加载和实例化 Servlet容器(如Tomcat)负责加载和实例化Servlet。当容器是首次启动或首次请求某个Servlet时,容器就会读取w…

英语小作文模板(10招募+通知;15通知+介绍)

10招募+通知: 题目背景及要求 第一段 第二段 第三段 翻译 15通知+介绍 : 题目背景及要求 第一段 第二段 第三段 15通知+介绍(2) 第一段 第二段 第三段 重金求子通知

Python---练习:使用循环嵌套打印正等腰三角形

案例: 使用循环嵌套打印正等腰三角形 如图: 思考: 首先,给了样式,有几行,也就是明确的次数,所以用while循环,for循环是针对没有明确次数用的。 while循环基本语法: 结…

Python基础入门例程45-NP45 禁止重复注册(条件语句)

最近的博文: Python基础入门例程44-NP44 判断列表是否为空(条件语句)-CSDN博客 Python基础入门例程43-NP43 判断布尔值(条件语句)-CSDN博客 Python基础入门例程42-NP42 公式计算器(运算符)-C…

【电路笔记】-谐波

谐波 文章目录 谐波1、概述2、频谱分析3、已知信号4、未知信号5、总结 周期性信号并不总是完美的正弦模式,例如我们之前有关 正弦波的文章之一中介绍的那样。 有时,信号确实可以是简单正弦波的叠加,它们被称为复杂波形。 在本文中&#xff0…

第一章 introduction to software testing

文章目录 基本概念validation / verificationinput domain / output domaindeterministic / non-deterministicterminate / not-terminate Testing概念testing 的目的Fault, failure, error测试三要素 (3 essential pieces of information)测试输入预期输出执行测试 test execu…

AI写作神器,轻松搞定职场公文写作!

在当今数字化时代,人工智能技术的快速发展为各行各业带来了许多便利,因为AI写作的普及,使许多职场人士能够更加快速地撰写出高质量的公文,作为一家引领智能AI写作潮流的在线平台,boardmix博思白板以其独特的优势在这个…

D-Link账号密码泄露

构造payload: /getcfg.php SERVICESDEVICE.ACCOUNT&attackture%0D%0AAUTHORIZED_GROUP%3D1漏洞证明: 文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。 免责声明:由于传播或利用此文所提供的信息、技…