什么是python自动化测试_python已经自动化了,大家一般用什么测试框架?

首先我们需要明白自动化测试框架更倾向于一种设计思想 ,这种思想指导工具的使用或者自研开发,并且不是只能使用仅仅一种框架,结合被测系统本身特性一般是选择多种测试框架的组合,来满足测试和设计需求(开发、维护角度)。录制回放测试框架

ChMlWl1HlueIILhuAAApPxane1QAAMXUAHNUBsAAClX340.jpg

录制回放测试框架所采用的原理是通过录制应用程序产生的线性脚本进行回放从而达到自动化测试的目的。优点:对测试人员测试开发能力要求最低,通过录制就可以得到所需脚本。

缺点:一般不具有逻辑判断的能力 ,可维护性差 ,效率低。

适应场景:不推荐,传统的UI自动化测试逐步弱化。关于U自动化,一定要清楚 被测系统是否满足开展自动化的条件,在被测系统变动频繁的项目中,开展UI自动化无疑是挖了一个很大的坑,其后期维护工作足以让大心疲惫,被迫放弃自动化测试。测试库构架框架(The Test Library Architecture Framework )

测试库构架框架的核心思想可以概括为系统功能操作和业务逻辑的解耦。将所有的针对测试系统支持的功能操作封装在测试库中,测试脚本调用测试库的同时传递外部的测试数据,测试库的编写由自动化测试发工程编写(可以不懂业务),负责控件的变更和维护, 测试脚本的编写可由对业务比较掌握的自动化测试开发工程编写,负责业务逻辑、测试数据的变更和维护。优点:被测试系统无论是哪层发生变化(代码层或业务层等),只需要相应的人员进行变更维护即可。

缺点:变更引起的维护工作同时附加在自动化测试开发工程师与业务测试人员身上,维护代码建级大。

适应场景:基于各种自动化开展方式(基于工具如Jemet或不基于工具的自研研发+持续集成)一般都会应用该框架。数据驱动的自动化测试框架( The Data-Driven Testing Framework )

ChMlWl1HlueILnR1AAArQmWFgmIAAMXUAHNeXIAACta246.jpg

数据驱动的核心思想可以概括为数据(测试数据、配置数据)与代码解耦。该种框架的原理是采用了数据驱动脚本进行测试,数据驱动脚本是将数据输入存储在独立的数据文件中,脚本只存代码,运行时脚本的输入直接从文件中读取,如此相同的脚本(代码模版)可以运行于不同的测试用例中,实现了代码与数据的分离。优点:对于业务人员由面向代码的开发转换为面向配置的设计(参数组合设计), 降低了开发难度与开发成本,同时提高了测试用例的易扩展性,可以快速扩展相似测试,实现了自动化代码不随用例的增长而增

缺点:测试脚本的维护由自动化测试开发工程师负责,要求懂自动化编程和业务逻辑,初始测试脚本设计成本较大,具有一定局限性 (针对相同的测试内容并具有相同的测试逻辑).

适用场景:更适应于测试内容测试逻相重复度高,被测对象对测试用例易扩展性、可复用性要求较高的场景。关键字或表驱动的自动化测试框架(The Keyword-Driven or Table-Driven Testing Framework )

ChMlWV1HlueIGZH5AAAu5FJHp_8AAMXUAHRxM0AAC78671.jpg

关键字驱动是对数据驱动的逻相扩展,它的核心思想可以概括为数据代码流程(逻辑)解耦,同时完成了代码与测试描述(针对被测对象的测试描述)的映射。该框架的原理是基于数据驱动的基础上,完成了对被测对象的拆分、抽象、 封装使之映射成个个“关键词” (测试描述),编写测试用例时,仅需要对关键词进行组合 ,即可完成不同场景的测试用例开发。

优点:对于业务手工测试人员,由面向代码或配置的开发转化为面向自然语言(测试描述)的开发,最大程度的降低了开发难度与维护成本,同时提高了测试用例的易扩展性、易组织性,实现了自动化代码不随用例的增长而增多。

缺点:对测试人员的测试开发能力以及业务了解程度要求很高。

适用场景:被测对象包含复杂业务流程(逻辑),当然复杂的能做简单的更ok。了解 更多可以看着这篇文章,希望对你有所帮助,欢迎关注、点赞支持。

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

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

相关文章

nginx会将post请求转为get么_前端角度谈GET与POST的区别

GET与POST 参数:GET传递的参数只能带URL后面,文本格式QueryString,各浏览器一般有长度限制,一般认为是2083,如果有中文字符更短。提交到服务器端的数据量小。参考:https://www.XXX.com.cn/blog/20201021.ht…

js预览本地word文档_Github+docsify打造在线文档

效果图如下预览链接:https://a870439570.github.io/interview-docs快速开始首先先安装好npm和nodejs,这里就不做过多介绍了 自信安装即可 (https://blog.csdn.net/zimushuang/article/details/79715679)安装docsify 推荐安装 docsify-cli 工具,可以方便创…

python创建一个json_如何为Python选择一个更快的JSON库

使用JSON越多, 你就越有可能遇到JSON编码或解码瓶颈。Python的内置库也不错, 但是还有多个更快的JSON库可用: 如何选择使用哪一个呢?事实是,没有一个正确的答案,没有一个最快的JSON库来超越其他所有库:一个“快速的JSON库”对不同的人意味着不同的东西&…

python函数拟合不规则曲线_python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案...

第一种是进行多项式拟合,数学上可以证明,任意函数都可以表示为多项式形式。具体示例如下。 ###拟合年龄 import numpy as np import matplotlib.pyplot as plt #定义x、y散点坐标 x [10,20,30,40,50,60,70,80] x np.array(x) print(x is :\n,x) num […

mysql myisam 分表_mysql myisam简单分表设计

一般来说,当我们的数据库的数据超过了100w记录的时候就应该考虑分表或者分区了,这次我来详细说说分表的一些方法。目前我所知道的方法都是MYISAM的,INNODB如何做分表并且保留事务和外键,我还不是很了解。首先,我们需要…

python数据结构 树_Python数据结构——AVL树的实现

既然,我们已经证明,保持 AVL 树的平衡将会使性能得到很大的提升,那我们看看如何在程序中向树插入一个新的键值。因为所有的新键是作为叶节点插入树的,而新叶子的平衡因子为零,所以我们对新插入的节点不作调整。不过一旦…

mysql连接规定时区以及编码_springboot项目中使用mysql连接遇到时区timezone问题,和编码encoding问题解决...

springboot项目中使用mysql连接遇到时区timezone问题,和编码encoding问题解决问题原因1.application.properties的设置1.1spring.datasource.driver-class-name1.2spring.datasource.url1.3spring.datasource.url其他问题总结问题原因1.mysql版本问题导致需要时区的…

python课程设计矩阵对角线之和_在python中如何求矩阵对角线上下元素的和?

下面是一个示例案例,演示如何使用嵌套循环在两种情况下求和:matrix [[ij for j in range(4)] for i in range(4)] for row in matrix: print(" ".join(list(map(str,row)))) totalSum 0 for i in range(1,len(matrix)): for j in range(i): …

mysql 中varchar_MYSQL中VARCHAR和CHAR类型

存储引擎存储CHAR或者VARCHAR值的方式在内存中和在磁盘上可能不一样,所以MYSQL服务器从存储引擎读出的值可能需要转换为另一种存储格式VARCHARvarchar类型用于存储可变长字符串。比定长类型更节省空间,因为它仅使用必要的空间。有一种情况例外&#xff0…

python保存图片_python保存网络图片问题

保存图片代码: def getImg(self,img_url_i):img_text login_session.get(img_url_i,headersself.headers,verifyFalse).textimg_soup BeautifulSoup(img_text,lxml)img_jpg img_soup.find_all("img",class_"origin_image zh-lightbox-thumb lazy&…

python安装常见问题_Python常见问题

问题描述: 在linux环境下部署Python项目时常常报错无法找到自己编写的模块解决方案export PYTHONPATH项目路径问题描述:Scrapy防封之settings文件设置解决方案设置动态USER-AGENT安装scrapy-fake-useragent模块在settings.py中添加配置DOWNLOADER_MIDDLEWARES {scrapy.downloa…

python 生成字符串_Python字符串生成器,按照特定的顺序

我正在制作一个程序,运行时会根据我定义的字符列表生成一个随机字符串。 的代码是:Python字符串生成器,按照特定的顺序 from random import randint from random import * import random Upperletters["A","B","C&q…

python解析sql文件_如何从Python中解析sql文件?

是否有任何方法可以从Python中执行.SQL文件中的某些SQL命令,而不是文件中的所有SQL命令?假设我有以下.sql文件:DROP TABLE IF EXISTS tableA;CREATE TABLE tableA(some_code) ENGINEMyISAM DEFAULT CHARSETlatin1;DROP TABLE IF EXISTS table…

滑动轨迹 曲线 python_python – 计算轨迹(路径)中的转折点/枢轴点

您可以使用 Ramer-Douglas-Peucker (RDP) algorithm来简化路径。然后,您可以计算简化路径每段的方向变化。对应于方向最大变化的点可以称为转折点: RDP算法的Python实现可以在on github中找到。 import matplotlib.pyplot as plt import numpy as np imp…

metinfo mysql 数据表_《MetInfo网站管理系统》常见问题整理

1.MetInfo安装过程中的数据库名称、密码等参数如何填写?执行安装脚本的“第三步:数据库设置”,请依据注释配置空间服务商提供的数据库服务器、用户名、密码及数据库名。数据库参数MetInfo无法告诉你如何设置,需要根据服务器账号的…

设无向图g如图所示_阿里重磅发布大规模图神经网络平台 AliGraph,架构算法解读...

图神经网络 (GNN) 主要是利用神经网络处理复杂的图数据,它将图数据转换到低维空间,同时最大限度保留结构和属性信息,并构造一个用于训练和推理的神经网络。在实际应用中,为了加速 GNN 训练和新算法的快速迭代,设计一套…

mysql5.0.19_CentOS下升级MySQL5.0.19到5.5

系统环境:CentOS 5.5CentOS 5.5的源mysql目前还停留在5.0.19上,要做数据库主从的时候,必须升级到5.1以上。索性,直接到5.5吧1系统环境:CentOS 5.5CentOS 5.5的源mysql目前还停留在5.0.19上,要做数据库主从的…

基于点云的三维重建_香港科技大学王煜教授:深度学习在物体三维重建中的应用...

基于单幅图像的物体三维重建是计算机视觉领域的一个重要问题, 近十年来得到了广泛地关注. 随着深度学习的不断发展, 近年来逐渐成为一个新的学术研究热点问题.计算机视觉研究的主要目标之一是从二维图像复原三维结构. 二维图像是当今时代极易获取的数据形式, 互联网上每时每刻都…

ranger管mysql_添加Kafka的Ranger访问权限策略

设置Kafka管理员权限在首页中单击“Kafka”区域的组件插件名称,例如“Kafka”。选择“Policy Name”为“all - topic”的策略,单击按钮编辑策略。在“Allow Conditions”区域,单击“Select User”下选择框选择用户。单击“Add Permissions”&…

python twisted和flask_Python高效开发实战——Django、Tornado、Flask、Twisted(第2版)

上篇 Python基础第1章 Python基础知识2 1.1 Python综述3 1.1.1 了解Python的特性及版本3 1.1.2 安装Python5 1.1.3 使用Python原生编辑器8 1.1.4 使用Eclipse开发环境9 1.1.5 Python编程入门——解决“斐波那契数列”问题14 1.2 数据类型17 1.2.1 Number类型17 1.2.2 Sequence类…