自动化测试以及接口测试(自动化接口测试用例)

网友投稿 283 2023-01-10


本篇文章给大家谈谈自动化测试以及接口测试,以及自动化接口测试用例对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享自动化测试以及接口测试的知识,其中也会对自动化接口测试用例进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

我眼中的接口测试和接口自动化测试

接口测试的目的是为了增加测试覆盖度、深入度 自动化测试以及接口测试,对接口的各个参数做实际场景中很难遇到的异常场景的测试自动化测试以及接口测试,保证接口的稳定性。如果在这个前提下接口测试还是没有发现 bug,那么可以 review 下历次迭代中是不是业务测试发现的所有 bug 都是前端的。如果是,那么说明你们的后端开发工程师能力实在很强,应该恭喜你们遇到了这么给力的队友。在测试压力很大的情况下就可以酌情考虑不做接口测试,前端测试完成就上线了。

如果不是那就应该 review 你们的接口测试用例了。是不是用例设计的还不如业务测试全面自动化测试以及接口测试?是不是用例设计的时候默认按照正常的取值范围?按照正常的业务逻辑进行的用例设计导致用例的覆盖还不如业务直接黑盒测出来的覆盖全。

自动化测试的主要目的不是发现多少 bug ,而是为了快速对接口做回归、做线上监控等,避免接口出现了低级问题、阻碍问题但是大家不能第一时间知道,等过了很长时间线上出了强反馈或者在错误接口的基础上又做了很多开发才被大家发现。当然,在接口自动化的基础上再做压力测试、稳定性测试等也会更方便。在这个前提下再评估接口自动化测试是否有必要,思路就会清楚一些。

整体上测试是为了保证业务中的 bug 能够在有限的资源下最大量、最快速的发现,业务实际情况不同、测试团队规模不同、测试与业务的合作模式、测试团队成员的技术能力等等都会影响测试方案的制定。

个人觉得如果团队有专人做接口测试,这种情况下接口测试定位到用来发现更多 bug 是没有问题的,如果没有发现 bug 那就需要仔细找找接口测试用例设计的问题。接口测试的目的不是取代业务测试,而是减少业务测试遇到阻碍问题的概率以及减轻业务测试模拟异常场景的工作量。接口自动化测试的目的是在回归场景节约业务测试的工作量,在新业务测试中实际反倒会占用更多的测试资源。

以上是作者拉拉肥对接口测试以及接口自动化测试的理解。你怎么看?欢迎点击 原文链接 在原帖共同讨论。

接口自动化测试

接口 自动化测试以及接口测试:外部系统与本系统之间以及系统内部的各个子系统间自动化测试以及接口测试,以约定标准提供的服务自动化测试以及接口测试,包括对外提供的接口/对内提供的接口。

在这块我们举一个比较生活化的例子,我们平常使用的笔记本,在笔记本的两端有很多小插口,最常见的就是USB插口,我们可以把鼠标连接在USB插口上,也可以把键盘、U盘连接在USB插口上,为什么同一个USB接口可以连接这么多设备呢,其实这个接口,他就有一个统一对外的连接标准。
在我们开发当中,也有一个对外暴露的接口,因为他们服务的协议都是统一的,最常见的就是hhtp协议,我们规定好一种格式,让客户端来调用我们。
这里面键盘鼠标属于调用方,插到笔记本的USB上,就可以连接设备,就可以进行操作了。对外暴露的一个统一的一个规范,这样去理解接口,更形象一些。

在了解完什么是接口之后,我们来说一下什么是接口测试。
接口测试 测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等,保证对外提供接口的正确性和健壮性。
我们在具体测试过程中,我们不用关心接口调用方和接收方的实现逻辑,我们只需要知道传入什么数据,返回什么的结果是否达到我们的预期。接口测试其实也是黑盒测试,他与UI测试的区别就是没有界面交互,是不可视化的。

测试前置 :我们不能等到整个系统全部开发完成才能进行测试,我们可以通过调用接口来进行测试,把问题拦截在前期,降低问题修复成本。
Bug更容易定位 :因为我们按接口进行测试,出现问题后在被测接口中排查就可以了,它比系统集成之后,发现问题更容易定位,系统集成之后有各种模块的调用,出现bug之后再排查,排查的链路非常的长。另外从机制上更接近出问题的地方更容易命中问题。
前后端分离结构 :现在很多系统都采用前后端分离架构,各服务之间更多的是通过接口来实现信息互通,对接口进行直接测试,可以更全面的覆盖各类测试场景。
自动化测试落地性价比高 :比UI自动化测试更稳定,我们上面已经说了UI层的元素时常发生变化,有时改一个简单的元素,都有可能导致我们的自动化测试走不下去,写一套自动化测试脚本比较容易的,但是维护起来,会耗费很大的时间精力,相对来说,接口就比较稳定,一个项目没有大的改造,入参和出参就是固定的,变化的概率比较小,这样维护起来也比较方便。
减少安全隐患 :比如我们在平常的测试过程中,测试用户名和密码,密码格式要求不能输入特殊字符,前端做了校验,而后端没有处理,这样我们只测试页面,这条case就默认通过了,但一些黑客可能通过抓包的方式进行登录,这样安全隐患就比较大了。我们对接口进行安全测试,可以避免安全隐患。

借助工具 : Postman、Jmeter、jsf平台、jsf测试工具、easytest
编写测试脚本 :Java+TestNG

请关注下一篇如何使用Java+TestNG进行接口自动化测试

接口自动化测试工具有哪些?

接口自动化工具有以下:

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

2、WinRunner。是一种企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行。通过自动录制、检测和回放用户的应用操作,WinRunner能够有效地帮助测试人员对复杂的企业级应用的不同发布版进行测试,提高测试人员的工作效率和质量,确保跨平台的、复杂的企业级应用无故障发布及长期稳定运行。

3、AdventNetQEngine。是一个应用广泛且独立于平台的自动化软件测试工具,可用于Web功能测试、web性能测试、Java应用功能测试、Java API测试、SOAP测试、回归测试和Java应用性能测试。

自动化(Automation)是指机器设备、系统或过程(生产、管理过程)在没有人或较少人的直接参与下,按照人的要求,经过自动检测、信息处理、分析判断、操纵控制,实现预期的目标的过程。

自动化技术广泛用于工业、农业、军事、科学研究、交通运输、商业、医疗、服务和家庭等方面。采用自动化技术不仅可以把人从繁重的体力劳动、部分脑力劳动以及恶劣、危险的工作环境中解放出来,而且能扩展人的器官功能,极大地提高劳动生产率,增强人类认识世界和改造世界的能力。

接口自动化测试测试用例设计

浅谈接口自动化测试测试用例设计

一、   前言   

很多中台项目,大部分为接口测试。为了使新入职的测试同事尽快融入项目,以及迭代开发中方便管理测试用例。完成该总结。

二、   测试用例设计思路   

1、 接口类型概述及优先级  

1) 提供给第三方调用的接口  

2) 内部系统使用,核心功能接口  

3) 内部系统使用,非核心功能接口  

基本按照1)2)3)的顺序进行测试,特别情况除外

2、 单接口测试优先级  

1) 优先测试正向测试用例,保证基本功能实现  

2) 设计逆向测试用例,确保接口的健壮性  

3) 满足前提条件的测试用例  

4) 默认参数是否满足  

5) 参数校验  

6) 参数间联动关系

7)多参数错误处理的优先顺序校验

三、   设计分析   

1、 满足前提条件的测试用例  

测试目标接口需要满足前置条件才能成功获取数据。

例如:需要登录token,通过传入参数获取下游接口数据

2、 携带默认参数的测试用例  

携带默认参数的测试用例仅需要设计一条,所有默认参数的字段都不填写,其他字段输入正常。

[if !supportLists]3、 [endif]参数校验  

参数校验包含如下几方面:

[if !supportLists]1)[endif]输入参数是否为必须输入项

[if !supportLists]2)[endif]输入参数的类型

[if !supportLists]3)[endif]输入参数的枚举值校验

[if !supportLists]4)[endif]输入参数长度校验

以上测试用例最好根据字段一一校验,排除互相干扰

[if !supportLists]4、 [endif]参数间联动  

有些参数见存在彼此制约的关系,根据实际情况设计测试用例

例如:A字段为1时,B字段一定为空。否则报错。

那么测试用例设计时应为:A字段为1时,B字段为空;A字段为1时,B字段不为空;A字段不为1时,B字段为空;A字段不为1时,B字段不为空;四条测试用例

这样基本覆盖所有分支流程。

[if !supportLists]四、 [endif] 测试用例实践操作

接口测试用例样例:

多条件查询接口

测试方法:使用robotFramework测试doubbo接口

协议请求方式:post

接口协议:JSON

消息请求列表

字段名数据类型默认值必须项备注

IDint 是长度为2

Tokenstring 是设备令牌

Statusstring 是1:正常

2:异常

typeint  Status为1时,为必须输入项

sizestring  默认值
消息返回列表

字段名数据类型必须项备注

Codeint是正常:20000

异常:20001

Messagestring是 

typeMessageint Status=1的所有ID

 

用例设计

 

NO. 测试内容 前置条件 输入参数 输出参数 用例属性

1目标数据为一条预置一条符合条件的数据Status=1,其他参数输入正常返回code=20000

typeMessage中返回的ID与预置数据一致

正向测试用例

2目标数据为多条预置多条符合条件的数据Status=1,其他参数输入正常返回code=20000

typeMessage中返回的ID与预置数据一致

正向测试用例

3 Token必须项检查 预置多条符合条件的数据Status=1,token输入为空,其他参数输入正常返回code=20001

typeMessage中返回为空

满足前提条件

4 Token正确性检查 预置多条符合条件的数据Status=1,token输入错误,其他参数输入正常返回code=20001

typeMessage中返回为空

满足前提条件

5 Status 必须项检查 预置多条符合条件的数据Status为空,其他参数输入正常返回code=20001

typeMessage中返回为空

参数校验

6 Status枚举预置多条符合条件的数据Status为1,其他参数输入正常返回code=20000

typeMessage中返回的ID与预置数据一致

参数校验

7 Status枚举预置多条符合条件的数据Status为2,其他参数输入正常返回code=20000

typeMessage中返回的ID与预置数据一致

参数校验

8 Status枚举预置多条符合条件的数据Status为3,其他参数输入正常返回code=20001

typeMessage中返回null

参数校验

9 Status=1,时联动校验预置多条符合条件的数据Status为1,type为空;其他参数输入正常返回code=20001

typeMessage中返回null

联动校验

10 Status!=1,时联动校验预置多条符合条件的数据Status!=1,type为空;其他参数输入正常返回code=20000

typeMessage中返回对应ID

联动校验

11 Status!=1,时联动校验预置多条符合条件的数据Status!=1,type不为空;其他参数输入正常返回code=20000

typeMessage中返回对应ID

联动校验

12 Size默认值输入校验预置多条符合条件的数据Size输入为空,其他参数输入正常返回code=20000

typeMessage中返回对应ID

默认值校验

13 Size默认值输入校验预置多条符合条件的数据Size输入不为空,其他参数输入正常返回code=20000

typeMessage中返回对应ID

默认值校验

14 ID 必须项检查 预置多条符合条件的数据ID为空,其他参数输入正常返回code=20001

typeMessage中返回为空

参数校验

15 ID 长度检查 预置多条符合条件的数据ID长度大于2,其他参数输入正常返回code=20001

typeMessage中返回为空

参数校验

16 破坏性测试预置多条符合条件的数据输入的参数类型错误请求未接收,返回404 稳定性测试

17 破坏性测试预置多条符合条件的数据输入的参数与提供的参数名称不一致请求未接收,返回404 稳定性测试

18 破坏性测试预置多条符合条件的数据输入的参数与提供的参数数量不一致请求未接收,返回404 稳定性测试

19 破坏性测试预置多条符合条件的数据输入的参数与提供的参数格式不一致请求未接收,返回404 稳定性测试

 

总结:自动化测试过程中会有一条自动化测试用例覆盖多种情况的可能(例如:正向测试用例与联动性验证的 Status=1,type输入不为空的测试用例重复,所以选择一条用例验证 。 ),以上的测试用例满足自动化的要求,手动测试过程中需要增加部分验证性的测试用例。且由于使用的测试工具特殊性,无需检查输入参数的类型。

软件测试面试题:WEB+网络|接口测试|性能测试|自动化测试


1. http代码表,常考题目

404自动化测试以及接口测试:找不到资源

500:服务器内部错误,无法完成请求。

501:服务器不支持请求的功能,无法完成请求。

502:充当网关或代理的服务器,从远端服务器接收到了一个无效的请求。

301:永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI,今后任何新的请求都应使用新的URI代替。

302:临时移动。与301类似。但资源只是临时被移动,客户端应继续使用原有URI。

200:成功。

2. TCP/IP四层网络模型

链路层、网络层、传输层、应用层。

3. TCP/UDP区别自动化测试以及接口测试

TCP: 可靠传输协议,需要三次握手连接,有确认重传机制,特点是可靠、准确、有拥塞控制,缺点就是比较慢,传输量比较小,适用于升级、下载;一句话:TCP是可靠的传输。

UDP: 不可靠传输协议,面向非连接的协议,优点是传输量大、速度快,缺点是已丢失、没有拥塞控制,适用于直播、视频等。一句话:UDP是不可靠的传输。

4. html css js运行的先后顺序是什么?

界面加载的时候先加载html在加载css最后加载js

5. session和cookie的区别是什么

1. session存放在服务器端用来校验客户端的身份

2. cookie存放在客户端,每次从客户端往服务器发请求时,将cookie带到服务器端,用来校验客户端的身份



1. 怎么用JMeter测试接口?

如果使用JMeter进行接口测试:

1) 测试前了解需求,根据接口规格说明书梳理业务;

2) 接下来设计用例,分析接口的入参和出参,分清楚有哪些有效输入和无效输入,设计用例(原则:用最少的用例覆盖所有有效输入,针对每一个无效的输入设计一个测试用例,如果有错误码没有覆盖到,还要对每个未覆盖的错误码分别设计一个用例);

3) 准备测试数据,比如:测试所需的账号、密码、key 等信息;

4) 打开JMeter,创建一个线程组,根据接口类型,填写好对应的接口地址和请求方式等;

5) 参数化配置,添加配置元件CSV Data Set Config,定义变量,并准备CSV格式的数据,变量的引用用${变量名}的格式;

6) 添加断言来判断测试结果的正确性,用得最多的是响应断言;

7) 添加监听器,比如查看结果树,对测试结果进行监听;

8) 运行测试用例;

9) 查看监听器结果,来判断用例的执行是成功还是失败,针对失败的用例,分析其失败原因;

10) 针对测试中发现的问题,给开发提单,直到问题最终解决。

11) 最后输出测试报告。

2. 怎么用Postman测试接口?

如果使用Postman测试接口:

其中1,2,3点相同,工具使用方面则比JMeter跟简单,工具的主要的步骤是添加对应的请求、填写主机URL及入参、添加测试套、运行测试套、分析结果出报告。

3. 在JMeter上如何把上一个请求的结果作为下一个请求的参数?

使用正则表达式提取器提取上一个请求的响应中的信息,保存一个引用名称比如abc,在下一个请求的参数中,用${abc}的格式来引用提取的结果。

常用的正则表达式格式:(.+?),其中.表示匹配任意字符串,+表示只匹配一次,?表示匹配到就停下来。



一般是自动化测试以及接口测试我们功能测试完成最后两三天时间测试性能。

1、先是分析需求计算出并发数,TPS,响应时间和 CPU,内存,硬盘和网络IO这些指标。

2、制定测试方案,主要包括环境,计划和具体测试那些场景(如可靠性,并发,负载,压力测试等)

3、根据场景用Badboy录制脚本,导出为JMeter工具支持的脚本。

4、用JMeter工具打开脚本,进行脚本调试,加一些断言,监听器,参数化等。

5、接下来执行性能测试,然后主要收集监听器和收集服务器CPU,内存,硬盘和网络IO等分析是否满足需求,如果满足就输出性能测试报告。

6、如果指标不能满足,反馈给开发进行调优。调优后继续测试,一直到满足需求后最终输出测试报告。



1. Python怎么定义一个函数?

你可以定义一个由自己想要功能的函数,以下是简单的规则:

1) 函数代码块以def关键词开头,后接函数标识符名称和圆括号()。

2) 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。

3) 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。

4) 函数内容以冒号起始,并且缩进

5) return[表达式]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回None


2 Python切片

3. Python上用过什么库/模块?

webdriver:定位和操作元素

time:设置等待时间

ActionChains:动作链,完成鼠标的相关操作

Keys:键盘的相关操作

WebDriverWait:设置显式等待

Expect_Conditions:针对单个元素,设置显式等待的场景

PIL:截图

Select:下拉选择框的操作

unittest python:自带的单元测试框架

HTMLTestRunner:运行脚本,生成报告

ddt:实现数据驱动测试,行为和数据分离

4. 你做过自动化测试吗?

自动化测试以及接口测试我在上一份工作中,公司去年下半年也开始规划做Web 自动化,采用Python作为开发语言,通过Selenium WebDriver定位和操作页面元素,自动化框架用的是unittest。我主要负责写测试脚本。

假设一个测试团队有5个人:1资深(测试经理)+2~3个中级(自动化+手动)+1 个初级(手动)

5. 使用什么工具进行的自动化测试

使用的工具是Selenium(Web自动化工具)

6. 用的什么编程语言

用的Python

7. Selenium 用的是哪个版本的的?Python用的是哪个版本的?

用的是selenium 3.11.0和Python2.7.10

8. Selenium的工作原理?

1)对html元素定位

2)模拟对第一步定位到的元素进行点击、输入、选择等操作一句话:定位元素,操作元素。

9. 元素定位方法有哪些?

要点:8种定位方法

1) 根据元素的属性值定位,比如 id、name、class、标签名、链接文字和部分链接文字;

2) 根据CSS选择器定位;

3) 根据 XPath 定位;

10. 子页面里的元素怎么定位?

先切换到框架里,然后再定位,用switch_to_frame函数根据子页面id或name,切换到子页面;定位完了如果要再定位主页面的元素,要用switch_to_default_content 函数先返回主页面。

11. 怎么定位alert弹窗?或者这样问:怎么处理JS原生窗口?

要点:主要涉及点击弹窗确认按钮、强行关闭弹窗、获取弹窗中的文字等操作。

1) 点击弹窗的确定按钮,用如下函数:

driver.switch_to_alert().accept()

2) 强行关闭,点击右上角的叉叉,用如下函数:

driver.switch_to_alert().dismiss()

3) 获取弹窗里的文字,用如下函数:

driver.switch_to_alert().text

12. 怎么运行自动化用例并生成测试报告?

以unittest为例,我通常的做法是把用例加载到测试套中,做成一个脚本,在命令窗口下运行脚本,报告的生成用第三方模块HTML TestRunner来生成。

13. 怎么定位/操作图片中的验证码?

用tesseract OCR引擎处理图片中的验证码,步骤:

(1)对整个屏幕截屏,保存成png格式的图片;

(2)在截取的图片中定位验证码图片的位置坐标;

(3)根据坐标对验证码截图;

(4)在图片中提取验证码,输入到输入框。

关于自动化测试以及接口测试和自动化接口测试用例的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 自动化测试以及接口测试的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于自动化接口测试用例、自动化测试以及接口测试的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:自动化测试异步接口测试(自动测试及接口技术)
下一篇:自动化测试是接口测试(自动化测试和接口测试)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~