自动化测试误区

news2024/11/27 18:36:32

数据驱动怎么玩? 

   数据驱动:因为数据的改变导致结果的改变。说人话就是,因为我在百度里搜索的是“selenium”导致结果就是包含了“seleniumhq.org”。因为我登录时候输入的是“zhangsan”导致的结果就是登录之后页面右上角显示“欢迎,zhangsan”。你自己体会一下,我说的也不一定对。

  曾几何时,不知哪位测试大牛说的,数据一定要放在excel表格里才逼格满满。再后来就演变成元素的定位一定要放到excel里才够“数据驱动”,才是玩自动化测试的高级境界。

  抱歉,可能我姿势不对!因为我不知道你们是如何想像着把元素定位放到excel表格里面的。

  但我认为这样做纯属多此一举。

  1、读excel有多麻烦,你知道么?不知道的百度一下,“python读取excel ” 或 “java 读取excel”。你想像一下,每个用例的每一步元素定位之前,先读一下excel是有多麻烦。

  2、这样好维护!谁告诉你的?你能记清excel第125行第2列对应的哪个页面上的哪个元素的定位?因某个页面上多加一个元素,我又在excel第32行下面插入一行元素定位,从33行往的所有元素的行号都变了,你那些读取excel中元素定位的操作都要跟着改吧!?

  那你给说道说道,什么情况下需要excel管理用例,在我看还真没想到什么场景必须excel管理。不过,有什么条件可以参考:

  1、这个数据有点多,比如这个输入框限制500字,我输入501个字提交看是否会提示错误。这500字写代码里有点多了。可以建立个文件读取。

  2、这个数据经常改动,比如自动化测试用例通过个哪个环境执行,哪款浏览器运行,运行哪个项目下的用例。这个配置是需要我经常改的,可以创建一个专门的配置文件来保存。

  3、这个数据作用于多个地方,比如系统的登录用户名密码,可能很多条测试用例都用一个账号登录。那我不可能每个用例,都写一遍这个账号,假如想统一更换帐号还得每个用例都改一下,这个时候也可以对这个数据独立保存。

  你看!你看!元素的定位也挺符合你的第2、3条的,经常变动,一个元素定位可能被多个用例用到。那你为什么不研究一个Page Ojbect 设计模式?专门解决元素变化问题的。

web自动化要用多大的数据?

   对了,前两天有人给我留言:你这个web自动化书吧挺好的(书在本博客面右上!),就是没有关于数据库的操作!亲,你不是在做web自动化,应该是在做性能自动化吧!?那我要碰到很多数据的情况下怎么存?这一定是你意淫出来的情况。那我在页面上插入了一条数据,我需要查询数据库表检查对不对呀?

  你确定你是在做web自动化么?web自动化是基于UI的自动化测试,是模拟用户操作的。你家用户这么高端,在你们的网站上买了个商品,还要跑到你家数据库里去查一查,刚才买的商品有没有写到xxx表里?

  那自动化怎么知道商品对没有没插入到xxx表?那我反问一下用户怎么知道自己有没有购买成功,一定是他在“已购买”的商品栏里看到自己的商品。你不会获取这信息做断言啊?

  说往数据库里存数据那位,你家用户在使用你们的系统的时候,自己要先准备几千条数呀?你说用户用excel存数据我信,你说用户上传excel数据文件我信,你说用户弄个数据库存几千数据,我不信!

这样的系统不太适合web自动化! 

   什么样的系统不太适合web自动化?以查询报表为主的系统,就是以插入,查询,删除,编辑为主的xx管理系统。如查你还不清楚的话,下图仅供参考。

  我此言一出,估计你要灰心了!我家系统就是这种的,添加,查询,编辑。这种系统一般定位起来也比较麻烦,要写又臭又长的xpath。(估计你现在已经和我产生共鸣了。)

  这种系统的核心就是数据,其后台实现就是各种查询接口。功能可用就好,一般这系统不讲究用户体验之类的。关键是数据得正确。尤其是针对金融领域相关的系统,那少算一个数、一个零、一个小数点,事可就大了。但在我看来做web自动化的实际意义并不大。或者这类系统要自动化的并不是系统最重要的部分。当然,我并不是说系统的功能不重要。

  最主要的是这种系统不太好断言结果,你想,你的数据是查询出来的,今天查询出来“张三”在第一页,后面这个查询数据增加,“张三”跑后第五页了,再后来跑到第170页,你说怎么用固定的信息断言? 没有断言,你怎么知道查询的结果对不对?

  我可以查数据库呀,我前面说了,查数据库的就不是web自动化了。

  其实,这类系统非常适合做接口自动化测试。关于,接口自动化的学习和需要掌握的技能,我会放到下一篇介绍(这一篇要还没啥阅读量,我就不写了^_^,毕竟这些吐槽也挺无聊的)。

  有同学说了,那我学自动化还有什么用?我家系统就是这种的。

  1、首先,我并不是说这类系统不能自动化,拿来练习web自动化还是可以的嘛。再说了,web自动化也是测试人员必备技能之一嘛,以后为你跳槽加薪好处也是大大地嘛。

  2、你学习的技能并没有白费:

  2.1、编程能力提升了吧!那编程语言能干的事情可以多了去了。

  2.2、单元测试框架学会了吧!这框架还可以用来写单元测试和接口测试呢!

  2.3、自动化测试的思想学到了吧!移动自动化也是这么玩的,只是把selenium换成appium而已。

  那我就好奇了,虫师,你家系统是什么样的?怎么就适合做web自动化了?知道你会这么想(问),我以前写过一个私有云的自动化(类似百度云盘),去年写过一个bbs社区的自动化,当然也都不算太成功(羞射...)。碰到更多的就是如上图的,所以,从去年底在开发的帮助下改去写接口自动化了。

Python接口自动化测试零基础入门到精通(2023最新版)

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

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

相关文章

关于为什么要替代aspera,有哪些aspera替代方案

Aspera是一种广泛使用的文件传输协议,其主要优势在于快速和安全地传输大型文件。然而,在某些情况下,Aspera的价格和性能可能不够优惠,而且需要购买额外的许可证和硬件。另外,一些用户可能也担心 Aspera 的安全性问题&a…

QT Day01 qt概述,创建项目,窗口属性,按钮,信号与槽

1.qt概述 1.什么是qt Qt 是一个跨平台的 C 图形用户界面应用程序框架。它为应用程序开发者提供建立艺 术级图形界面所需的所有功能。它是完全面向对象的,很容易扩展,并且允许真正的组 件编程。 2.支持的平台 Windows – XP 、 Vista 、 Win7 、 Win8…

零基础编程入门视频教程,零基础编程从哪学起,分享中文编程工具构件实例

零基础编程入门视频教程,零基础编程从哪学起,分享中文编程工具构件实例 1、零基础编程入门视频教程,系统化编程教程链接 https://jywxz.blog.csdn.net/article/details/134073098?spm1001.2014.3001.5502 2、零基础编程从哪学起 建议初学…

C语言:求Sn=a+aa+aaa+aaaa+……(n个a)之值,其中a表示一个数字,n表示a的位数,n由键盘录入。

分析: 在主函数 main 中,程序首先定义四个整型变量 a、n、i 和 sn,并初始化 a、n 和 i 的值,其中 sn 用于记录数列的和。然后使用 scanf 函数从标准输入中读取用户输入的两个整数 a 和 n。 接下来,程序通过 while …

【JavaScript框架】2024年需要学习的顶级JavaScript框架:Blitz、SolidJS、Svelte等

如今,Web开发人员面临两大问题。 第一个是如何自动化繁琐的web开发工作。要为标准web应用程序设置一个项目,您必须花费宝贵的时间学习用于常见任务的几个库,如身份验证和数据库处理,并将它们捆绑在一起。第二个问题是如何使网络应…

knife4j集合化postman

knife4j集合化postman 01 knife4j的介绍 基于 JavaMVC的集成框架swagger的进一步强化,在原有通过注释就能生成文档的前身swagger-bootstrap-ui之上,增加了postman的测试功能,优化了文档的UI界面,在测试api接口的方面有了极大的进…

C语言错误处理之<errno.h>与<error.h>

目录 前言 错误号处理方式 errno.h头文件 常见的宏 error.h头文件 参数解释: 关于的”__attribute__“解释: 关于“属性”的解释: 实例一: 实例二: error.h与errno.h的区别 补充内容: 前言 …

TUP通信——与多个客户端同时通信

一,概括:可以通过多线程思想每加一个客户端由线程池中的主线程交给一个子线程管理 二,案例 (1),线程池 (2),服务端 (3),客户端

RPG项目01_UI登录

首先创建一个项目 将资源包导进Resources文件夹 创建一个Scripts脚本文件夹 然后再对Scripts脚本文件夹分门别类 导入UI资源包 创建一个Image 按住Alt 选择右下角 image就会覆盖整个面板 修改image名字为BG 将image图片放置背景栏 再创建一个image 改名为MainMenu 修改MainMenu…

FLV 文件格式分析

前言 flv 是 flash video 的缩写,是 Adobe Flash payler 支持的一种流媒体播放格式。flv 是一种层级格式,除了一个 flv header 外,剩下全是由 一个个 tag 组成。tag 是由 tag 头和 tag 数据组成。tag 类型分为音频、视频、脚本,一…

centos7 keepalived 探测当前节点

前提 nginx 默认页面内容中需要加上各节点的ip nginx web页面修改 nginx配置文件路径:/etc/nginx/nginx.conf,该配置文件引用了/etc/nginx/conf.d/default.conf 打开/etc/nginx/conf.d/default.conf配置文件可以看到html页面的路径 /usr/share/nginx…

分享从零开始学习网络设备配置--任务4.3 使用动态路由RIPng实现网络连通

任务描述 某公司使用IPv6技术搭建企业网络,由于静态路由需要管理员手工配置,在网络拓扑发生变化时,也不会自动生成新的路由,因此采用IPv6动态路由协议RIPng实现网络连通,实现任意两个节点之间的通信,并降低…

【UE】切割程序化网格体

效果 步骤 1. 新建一个Actor蓝图,这里命名为“BP_程序化网格体” 打开“BP_程序化网格体”,添加一个静态网格体组件,再添加一个程序化网格体组件 选中程序化网格体组件,取消勾选“将复杂性用作简单碰撞”选项 选中静态网格体组件…

详解Java中的泛型(泛型的语法,擦除机制,泛型的上界)

目录 一.什么是泛型 二.Java中为什么要使用泛型 三.泛型的语法 四.泛型类的使用 五.泛型的编译机制(擦除机制) 六.泛型的上界 一.什么是泛型 泛型(Generics)是Java SE 5中引入的一个新特性,可以使Java中的类和方…

这些steam游戏搬砖知识,你不会还不知道吧?

CSGO搬砖日常出货更新 大家好,我是阿阳,一个只讲项目实操干货的创业博主。今天的内容主要是针对准备踏入游戏行业的新人来讲的: 1、首先大家一定要弄清游戏搬砖到底是哪一个游戏搬砖,因为市面上有个叫游戏打金的很多人也习惯把他…

Liunx系统使用超详细(二)

本篇内容是总结罗列Liunx系统日常使用的基础操作!!! 目录 一、查看IP地址 1.1使用 ip 命令 1.2使用 ifconfig 命令 1.3使用hostname命令(仅显示主机名) 1.4使用curl命令获取公共IP地址 二、重启网卡(网络接口) …

实在智能荣获36氪消费新势力榜单“优选品牌服务商”

近日,36氪未来消费正式公布「FUTURE 2023」消费新势力名单,实在智能凭借专业的数字化产品力、卓越的服务力和深远的行业影响力,成功入选榜单并获评“优选品牌服务商”。 据悉,此次名单是由36氪未来消费特邀消费领域的行业专家、投…

开源运维监控系统-Nightingale(-夜莺)应用实践(未完)

一、前言 某业务系统因OS改造,原先的Zabbix监控系统推倒后未重建,本来计划用外部企业内其他监控系统接入,后又通知需要自建才能对接,考虑之前zabbix的一些不便,本次计划采用一个类Prometheus的监控系统,镜调研后发现Nightingale兼容Prometheus,又有一些其他功能增强,又…

【微服务】java 规则引擎使用详解

目录 一、什么是规则引擎 1.1 规则引擎概述 1.2 规则引擎执行过程 二、为什么要使用规则引擎 2.1 使用规则引擎的好处 2.1.1 易于维护和更新 2.1.2 增强应用程序的准确性和效率 2.1.3 加快应用程序的开发和部署 2.1.4 支持可视化和可管理性 2.2 规则引擎使用场景 三、…