• 0
  • 0
分享

什么是自动化测试?

自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。

为什么做自动化测试?

1)对个人来说

随着时代科技的进步,越来越多的工作偏向于了自动化,软件测试当然也不例外。从发展的趋势来说,只有不断的提升自己,面对各种变化,才可以追上科技的进步。手动测试虽然是基础,但是企业不会在乎你的过程。只有高效率的工作才会让企业觉得你更有价值。自动化测试是软件测试的主流,也是软件测试的高薪专场!

2)对企业来说

为什么企业做自动化测试,从现在的情况来看,互联网需求迭代非常快,人员流动性非常大,所以工作时间比较紧迫,要在规定时间内提高工作效率,所以一个需求从提出到上线时间比较紧急,同时对于其影响的范围也可能不太清楚,在上线之前必须对原有功能进行回归测试。不管是接口还是从客户端,都需要大量的测试工作,而且在大数据时代,测试用例量也是非常庞大的,如此繁复单调的工作让人工来测试的话,根本不能保证效率和质量,所以必须要借助于非人工手段来实现。

怎么才能算合格的测试工程师呢?

自动化测试工程师细分可以有UI自动化测试工程师,APP自动化测试工程师、接口自动化测试工程师等等。

首先,掌握一门编程语言,应该以Java或者python为主,虽然什么语言都可以用来做自动化测试,但毕竟这个两个是最流行的,如果想成为自动化测试工程师里,最主流的测试工程师,还是强烈推荐大家选择这两门语言。

然后,掌握主流的框架,如:selenium,appium,monkey,monkeyrunner之类的,基本上掌握了这个几个APP和UI自动化都可以玩的转了。

自动化测试工具有好多种,分享给大家这些,希望对你能有帮助!

1、SoapUI-接口测试

SoapUI是一个非常流行的用于SOAP和REST的开源API测试自动化框架。它还支持功能测试、性能测试、数据驱动测试和测试报告。

2、QTP-WebUI自动化测试

QTP是一种自动测试工具。使用 QTP 的目的是想用它来执行重复的手动测试,主要是用于回归测试和测试同一软件的新版本。因此你在测试前要考虑好如何对应用程序进行测试,例如要测试那些功能、操作步骤、输入数据和期望的输出数据等。

QTP针对的是GUI应用程序,包括传统的Windows应用程序,以及现在越来越流行的Web应用。它可以覆盖绝大多数的软件开发技术,简单高效,并具备测试用例可重用的特点。其中包括:创建测试、插入检查点、检验数据、增强测试、运行测试、分析结果和维护测试等方面。

3、Postman-接口测试

Postman 提供功能强大的Web API和HTTP请求的调试,它能够发送任何类型的HTTP请求 (GET, POST, PUT, DELETE…),并且能附带任何数量的参数和Headers。不仅如此,它还提供测试数据和环境配置数据的导入导出,付费的Post Cloud用户还能够创建自己的 Team Library用来团队协作式的测试,并能够将自己的测试收藏夹和用例数据分享给团队。

4、Monkey-稳定性测试

软件附带在sdk中,适用于android和ios,通过adb shell,生成用户或系统的伪随机事件。

压力测试结果:崩溃crash,无响应anr,基本命令:adb shell monkey 1000。

5、Jmeter-接口测试,性能测试

Apache JMeter是一个开源的Java桌面应用程序,主要用于web应用程序的负载测试。它还支持单元测试和有限的功能测试。

它有很多好的特性,比如动态报告、可移植性、强大的测试IDE等,并且支持不同类型的应用程序、协议、shell脚本、Java对象和数据库。

6、Robot Framework-WebUI自动化测试,接口测试

Robot Framework是一个开源自动化框架,它实现了用于验收测试和验收测试驱动开发(ATDD)的关键字驱动方法。Robot Framework为不同的测试自动化需求提供框架。但是,通过使用Python和Java实现其他测试库,可以进一步扩展其测试功能。Selenium WebDriver是Robot Framework中常用的外部库。

测试工程师可以利用Robot Framework作为自动化框架,不仅可以进行Web测试,还可以用于Android和iOS测试自动化。对于熟悉关键字驱动测试的测试人员,可以轻松学习Robot Framework。

7、LoadRunner-性能测试

LoadRunner,是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。

企业使用LoadRunner能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。LoadRunner可适用于各种体系架构的自动负载测试,能预测系统行为并评估系统性能。

自动化测试常见问题怎么解决?

1、找不到元素,脚本报"NoSuchElementException:Unable to find element",或者"定位到了,不能操作,点击无效"

首先查看自己的"属性值"是否写正确

元素的标签不唯一,默认找到第一个

向上查看,元素是否在frame或iframe框架中

查看元素是否在新打开的页面中,需要切换到新窗口

换其它的定位方式

id/name/class name/tag name/link text/xpath/css selector

检查元素属性是否是会变动的、是否是隐藏的

添加等待时间sleep(),implicitly_wait(),WebDriverWait(driver, 10, 1).until(定位的元素, messages)

查看标签的属性是否有"style=‘display:none’->。元素不显示。属性改为block

查看标签的属性是否有’οnclick=return false’->。取消点击。属性改为false(在百度首页,登陆的属性就是这个)

针对于9和8这两种情况,我在网上搜到的结果是:执行js修改属性(这种方法我没有试过,不知道有没有效果)

js=“document.getElementById(‘title’).style.display=‘block’”
driver.execute_script(js)

2、出现"object is not iterable":

首先查看脚本,测试用例出现问题

组织用例时出现错误(我开始是用for循环遍历y,加入测试集合中,返回集合,老是会出现错误,最后改成下方代码,直接返回y,解决问题)

3、出现"Indentation Error": 是语法问题,脚本代码没有正确对齐

4、使用PO设计模式封装的页面元素类,都有初始化函数"init"

5、页面元素调用Page类时候,Page函数,后面括号的"self"不用写

6、Page的初始化包含(self,driver)两个元素,在页面封装类中,初始化中调用方式为Page.init(self,driver)

7、类中定义变量,比如x=“hello”,调用使用:self.x

8、在测试用例调用自己页面封装的类时,经过实例化后po=Lzsp(driver),定义函数时候, 不需要再括号中写self

9、提示在页面封装类中没有basePage.py文件中定义好的函数问题:

新建名字为module_basePage.pth文件,内容为"basePage.py文件"存放路径

进入python的安装目录,将文件放到python3libsit-packages文件夹下

在测试用例中导入其他文件夹模块引入:import sys

sys.path.append("…")
from … import …

10、页面元素封装时候,定位方式一定要写正确,否则会出错

11、进行参数化的时候,读取数据的文件里面代码:“使用绝对地址,加双斜线”

12、运行自动化脚本时候将鼠标放到屏幕中间或者下方,(有可能切换窗口时定位不到)

13、出现"parater must be str":使用参数有问题,(我的是因为二次定位写的方式有问题)

14、在window命令界面下使用:"python 文件名.py >>report/log.txt 2>&1"命令把结果写入文本中

15、在页面封装中,类的初始化使用如下样式:

def init(self,driver):
Page.init(self,driver)

16、打印输出时显示"not all arguments curerted during string format"是说明前后参数不对应:%前面是一个"%s",而后面的参数是(“xy”,“xy”)两个


作者:leborjcs

原文链接:https://blog.csdn.net/leborjcs/article/details/90405308

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   一、网络管理功能的目的  解决蓄电池电量有限,如果整车控制器同时工作会造成电池亏电的问题。通过网络管理功能,当用户需要请求相关功能时,参与该功能的相关ECU节点才需要启动起来。  协调各 ECU 同时进入网络睡眠模式;车载控制器网络管理功能就是通过在各个ECU的网络上,发送一些命令制定一套规则,来实现整车各个ECU的协同睡眠和唤醒。按照唤醒方式,我们可以将ECU网络节点类型划分为本地唤醒与远程唤醒。本地唤醒:唤醒源来源于自身模块,比如KL15硬线唤醒;远程唤醒:唤醒源来源于自身ECU节点所在的网络报文,该节点可以处于完全休眠状态;  二、结合硬件电路说说网络管理功能  为了支持睡眠和唤醒,...
            0 0 2390
            分享
          •   马克-扎克伯格(Mark Zuckerberg)并不吝啬分享他对苹果公司产品或战略的看法,同时还不断强调苹果公司和 Meta 公司之间相互竞争的愿景。在最近的一次采访中,这个话题再次被提起,扎克伯格毫不避讳地分享了他的观点,即他的公司与蒂姆-库克的公司在本质上是完全不同的。他甚至还批评了苹果公司的产品开发方法。  马克-扎克伯格在一次采访中强调,Meta 实际上与苹果截然相反,并着重介绍了他的公司如何为创新提供空间。  虽然苹果和 Meta 的产品线不同,但 Meta Quest 和 Vision Pro 一直是竞争对手,两家公司之间形成了竞争的氛围。马克-扎克伯格(Mark Zucker...
            0 0 418
            分享
          • **软件测试基础知识小总结** 最近给初踏进软件测试邻域的同行们整理了一份软件测试基础知识小总结,虽然不是很全面,但希望给大家带来帮助。软件测试统一的观点:测试是为了证明程序有错,而不是证明程序无错;一个好的测试用例在于发现了至今没有发现的错误;一个成功的测试是发现了至今未发现的错误。测试类型:黑盒测试将测试对象看成一个黑盒子,只在程序界面处进行测试,对接口进行测试,检查是否满足需求规格说明书。白盒测试结构测试,将程序看成一个透明的白盒子,检查所有的代码结构灰盒测试介于白盒测试与黑盒测试之间的测试。黑盒测试和白鹤测试有分为动态和静态的两种(静态黑盒测试:看文档,看页面等   ...
            0 0 1656
            分享
          • 一、软件与软件安全的需求分析为了开发出满足用户需求的软件产品,首先需要知道的是用户的需求。这是对软件开发工作能否取得成功的基础条件。1、软件需求分析的主要工作为了开发出满足用户需求的软件产品,首先需要知道的是用户的需求。这是对软件开发工作能否取得成功的基础条件。1)确定系统的综合要求功能需求:划分系统需要的功能;性能需求:指定系统的约束,包括速度、信息量、存储量等;可靠性和可用性需求:顶俩个的指定系统的可靠性,它量化了系统被用户的实用程度;出错处理需求:该如何人响应错误环境;接口需求:描述系统与特的通信格式;约束:应该遵循的限制条件;逆向需求:说明软件不应该做什么;将来可能提出的需求:明确哪些...
            0 0 3372
            分享
          • 对于性能测试来讲,使用编程语言实现性能测试用例的核心就是并发编程,也就是同时执行多个测试用例,以模拟真实的负载情况。并发编程可以有效地提高测试效率,可以更快地发现系统中的瓶颈和性能问题。在实现并发编程时,需要考虑线程的同步和互斥,以确保测试结果的正确性和可靠性。此外,还需要考虑如何分配和管理资源,以避免资源竞争和浪费。之前已经使用了Java实现,最近在计划使用Go语言实现一些新的压测功能的开发,这其中肯定也少不了使用到线程池(Go中协程池)。虽然Go语言协程已经非常强大了,很多情况下,我们可以直接使用go关键字直接创建协程去执行任务。但是在任务调度和负载保护的场景中,还是有所欠缺。所以在参考了...
            0 0 1148
            分享
      • 51testing软件测试圈微信