不得不说--自动化测试元素定位与用例设计

 

 

关于自动化测试,经常被问到元素的定位 与 如何设计用例。 很多时间我也帮不了你解决实际的问题,只能从个人脚本谈谈如何看待这些问题。

 

不得不说之元素定位

 

  虽然,本章写了十几篇文章来讲元素的定位与操作,对于碰到的一些常见功能,如何通过技巧来定位它们,但是在实际的自动化脚本开发中,不管是新手还是具有一定经验的老手,我们面临最多的问题仍然是元素的定位问题。

  有时间元素定位非常简单,例如,我们只要知道这个元素有的id和name 就可以轻松的来定位到它;有时间元素的定位却非常的令人非常头疼,尽管我们用尽了所以办法,仍然无法定位到它。在这里笔者也没万能的方法来帮你解决这些实际问题。

 

      评估自动化可行性

  对于不同的web项目,所用到的前端技术也不同,有些项目会用到EXT(一个强在的js类库),有些会用到AJAX(一种创建交互式网页应用的网页开发技术),这些技术的应用无疑对于前端开发人员可以快速的生成所需要的页面,但对于UI自动化测试人员来说,增加了定位页面元素的难度。

  所以,在进行项目实现UI自动化评估的时候,页面元素的定位难度也是一个评估标准,如果处处都是很难定位的元素,那么无疑会增加脚本的开发与维护的成本,得不偿失。这个时候我可以考虑将更新多的精力放在单元或接口层的自动化上。

 

      提高技术能力

  对于自动化测试人员来说,如果熟悉前端技术也会大在降低你定位难度,熟练使用XPathCSS技术会使你的定位变得容易很多,如果精通javascriptjquery 等技术,那么使你的定位之路变得更加随心所欲。

 

    规范前端开发

  在我们尝试实施的web项目中,大多数在设计初期,前端并没考虑到需要UI层的自动化,所以,有些前端开发人员以实现功能为目的,前端页面的代码相当不规范。这个也是自动化测试定位难的重要原因。如果开发人员在设计代码的时候规范的为元素加上id name属性的话,那我们的定们将会变得容易很多。

  很多测试人员在对项目进行学习和实施自动化测试的过程总是觉得困难重重,就是因为这些普遍的客观原因所造成的。一方面,我们要努力学好技术,克服这些困难。另一方面,我们要清楚的认识到,自动化技术的应用与实践不是一个人的战斗。一定要得到整个团队的配合与支持。

  当然,站在公司的立场,不能带来收益的事情是很难得到支持的,这个就需要读者去综合评估目前的产品真的适合引入自动化么?或者目前的阶段真的迫切需要自动化么?

 


 

 

 

不得不说之用例设计

 

  自动化测试用例如何设计,对于新手来说也是比较难理解的问题。

  不少新手刚刚掌握了写脚本的能力,一上来就拿着功能测试用例一条一条的转化成自动化用例。在写的过程中,会发现诸多问题,例如,脚本中重复代码很多,一个脚本的执行结果影响到另一个脚本的执行,有些功能用例很难转化成自动化用例等。

 

  站在用户角度设计自动化

  在功能测试的时候我们一般会遵循这个原因,但是自动化测试往往可以实现更强大的功能,所以,我们在设计脚本的时候很容易违背这个原则。例如,你要获得的数据是用户不可见的,你要判断用例是否成功的信息也是用户不可见的,或者你要模拟的是用户永远不可能做的操作等。

 

  设计简单傻瓜的用例

  自动化脚本本来是很傻瓜的。记得有同学问我,百度输入有个自动联想功能,就是在用户输入的过程中自动配置热门搜索的关键词,例如,用户输入“自”,会自动联想“自我评价”,“自行车”等。用继续输入“自动”,会自动联想“自动化”,“自动关机”,“自动档”等。他想定位自动联想下拉列表的某个关键词,这个关键词是百度根据用户搜索热度的变化而变化的。

  再比例有同学问我,下拉列表功能,我想脚本执行时随机选择某一个选项,那么如何如何去判断随机的结果呢?换句话说,你都不知道你做了什么,怎么去判断做的结果对不对?

  所以,我们在设计用例时尽量考虑简单傻瓜的用例,操作步骤简单,预期结果容易判断等。

 

  从简单开始

  对于新需要自动化的项目来说,自动化测试的实施是循序渐进的,不要一上来就设计几百条用例,而是逐步的将功能用例转成自动化用例,在转的过程中需要不断的调整测试结构。然后,再增加稳定的测试用例。然后,再调整测试结构。随着功能的增加你的自动化测试框架也在逐渐稳定,基础测试用例也在增加。一上来就几百条用例,需求的稍微变化,用例就可能大调整,那么你很可能每天疲惫于用例的维护。

  所以,在开始自动化的时候,你可以只对登录功能写个十来条的自动化用例。从而,渐渐的考虑将更多功能自动化起来。

  半自动化对于测试人员是个不错的开始,这样你可以将更多的精力花在安全测试,探索性测试,甚至是用例体验上等。不要觉得全职自动化就是多么高大上的职位。

 

 

转载于:https://www.cnblogs.com/fnng/p/3696925.html

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

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

相关文章

七、华为鸿蒙HarmonyOS应用开发之Java UI框架、常用Text组件和Button组件使用

一、Java UI框架概述 应用的Ability在屏幕上将显示一个用户界面,该界面用来显示所有可被用户查看和交互的内容。 应用中所有的用户界面元素都是由Component和ComponentContainer对象构成。Component是绘制在屏幕上的一个对象,用户能与之交互。ComponentContainer是一个用于…

MySQL 快速创建千万级测试数据

作者:IKNOW本尊链接:http://t.cn/E96Shud背景在进行查询操作的性能测试或者 sql 优化时,我们经常需要在线下环境构建大量的基础数据供我们测试,模拟线上的真实环境。总不能让我去线上去测试吧,会被DBA砍死的创建测试数…

【面试收藏】Redis最全面试题

出自:https://github.com/CyC2018/CS-Notes程序员乔戈里整理一、概述二、数据类型STRINGLISTSETHASHZSET三、数据结构字典跳跃表四、使用场景计数器缓存查找表消息队列会话缓存分布式锁实现其它五、Redis 与 Memcached数据类型数据持久化分布式内存管理机制六、键的…

ALLEN-XIE

ALLEN-XIEABOUTAllen Xie是一家坚持理念至上的西装定制店。我们的价值观渗透于我们所做的每一件事中,从而确保始终遵循自己的风格。我们坚持用最高标准要求自己,因此,在制衣过程中,两次的试衣过程以确保每一件西装都可以完美的贴合…

八、华为鸿蒙HarmonyOS应用开发之Java UI框架、常用TextField组件使用

一、TextField组件 二、TextField组件实例测试 1.新建基于empty ability(Java)手机应用程序的TextField工程。运行出现如下结果 2.在resources->zh.element文件夹下string.json文件修改代码如下: {"string": [{"name": "entry_MainAbility&qu…

面试题:彻底搞懂 Cookie 和 Session

我在做面试官的时候,曾经问过很多朋友这个问题: Cookie 和 Session 有什么区别呢?大部分的面试者应该都可以说上一两句,比如:什么是 Cookie?什么是 Session?两者的区别等。但如果再往深入探讨的…

局域网内Windows允许其他电脑指定IP访问本地mysql-8.0.23数据库

第一步:用ping命令测试两台电脑是否连通 如果两台电脑是连通的请转到第二步,如果是非连通的请进行如下操作: 1、进入控制面板,打开Windows Defender 防火墙,点击高级设置(本人用的是Windows10,其他Windows版本操作类似) 2、在新弹出的页面中点击入站规则,在入站规则中…

C#_MVC_ajax for form

在上一篇介绍MVC中的Ajax实现方法的时候&#xff0c;曾经提到了除了使用Ajax HTML Helper方式来实现之外&#xff0c;Jquery也是实现Ajax的另外一种方案。 通过get方法实现AJax请求 View <script type"text/javascript">function GetTime() {$.get("Home/…

经典面试题:聊一聊垃圾回收算法

关于垃圾回收算法的这道面试题&#xff0c;几乎是所有 3 年以上的 Java 面试中必问的题目&#xff0c;甚至有些好一点的公司会在校招时问到面试者。那么本文就系统的讲一下垃圾回收的算法&#xff0c;和 Hotspot 虚拟机执行垃圾回收的一些实现细节&#xff0c;比如安全点和安全…

错误:readline/readline.h:没有那个文件或目录解决方法

make linux在包含自 lua.h&#xff1a;16 的文件中&#xff0c;从 lua.c&#xff1a;15:luaconf.h:275:31: 错误&#xff1a;readline/readline.h&#xff1a;没有那个文件或目录luaconf.h:276:30: 错误&#xff1a;readline/history.h&#xff1a;没有那个文件或目录lua.c: In…

九、华为鸿蒙HarmonyOS应用开发之Java UI框架、常用Image组件使用

一、Image 二、Image组件实例测试 1.新建基于empty ability(Java)手机应用程序的ImageTest工程。运行出现如下结果 2.在Project窗口,打开“entry > src > main > resources > base > media”,添加4个图片至media文件夹下,以“pic1.jpg”、“pic2.jpg”、…

阿里面试,我挂在了第四轮……

可能每个技术人都有个阿里梦&#xff0c;我也不例外。最近准备跳槽&#xff0c;前一阵子在准备各种面试&#xff0c;也面了几个大厂&#xff0c;包括阿里。是的&#xff0c;最后我挂在了第四轮。这篇文章来总结一下我在阿里四轮的面试经历&#xff0c;希望能对读者有所启发。阿…

基于IP-PBX的VoIP系统解决方案

基于IP-PBX的VoIP系统解决方案目前&#xff0c;众多企业随着业务的扩张&#xff0c;开设了大量的分支机构&#xff0c;这样企业总分支机构以及分支机构之间的语音沟通是非常频繁&#xff0c;企业长途电话费用是企业经营成本中的一项巨大开支。现在互联网已非常普及&#xff0c;…

Python RSA加密与解密 公钥和私钥 读写pem文件

非对称加密算法: 文件加密需要公开密钥(publickey)和私有密钥(privatekey)。 接收方在发送消息前需要事先生成公钥和私钥,然后将公钥发送给发送方。发送放收到公钥后,将待发送数据用公钥加密,发送给接收方。接收到收到数据后,用私钥解密。 在这个过程中,公钥负责加密…

面试官:聊一下二分法

来源&#xff1a;cnblogs.com/luoxn28/p/5767571.html1、二分查找二分查找是一个基础的算法&#xff0c;也是面试中常考的一个知识点。二分查找就是将查找的键和子数组的中间键作比较&#xff0c;如果被查找的键小于中间键&#xff0c;就在左子数组继续查找&#xff1b;如果大于…

Delphi利用Windows GDI实现文字倾斜

2019独角兽企业重金招聘Python工程师标准>>> procedure TForm1.FormPaint(Sender: TObject);var FLogFont: tagLogFontW; hTempFont, hPrevFont: HFONT; //字体句柄 hTempDC: HDC; //设备描述表或图形设备句柄 TempString: string; //输出的文字begin FLogFont…

面试干货 | Java 能否自定义一个类叫 java.lang.System?

本文由读者 apdoer 投稿&#xff0c;apdoer 是一个极具钻研精神的 Java 猿&#xff0c;技术牛X头发茂盛! 博客地址&#xff1a;https://blog.csdn.net/m0_43452671缘起&#xff1a;一个面试题最近在上下班地铁刷博客,无意刷到一个面试题,号称很多程序员的烈士公墓&#xff1a;j…

mysql 数据库文件导入和导出、远程上传和下载数据库

1.打开数据库操作软件:Navicat Premium 15 中文版,登录测试连接! 2.打开本地mysql 数据库,新建数据库的名字必须和要导入的数据库名字一致。字符集和排 序规则按下图设置即可。

c++构造函数详解(转)

c构造函数的知识在各种c教材上已有介绍&#xff0c;不过初学者往往不太注意观察和总结其中各种构造函数的特点和用法&#xff0c;故在此我根据自己的c编程经验总结了一下c中各种构造函数的特点&#xff0c;并附上例子&#xff0c;希望对初学者有所帮助。 …

经典面试题 | 讲一下垃圾回收器都有哪些?

垃圾回收器有哪些&#xff1f;是一个高频的面试题&#xff0c;那本文就详细来解答这个问题。因为不同的厂商&#xff08;IBM、Oracle&#xff09;&#xff0c;实现的垃圾回收器各不相同&#xff0c;而本文要讨论的是 Oracle 的 HotSpot 虚拟机所使用的垃圾回收器。常用垃圾回收…