接口自动化测试操作流程

接口自动化大致步骤:

1、发送请求

2、解析结果

3、验证结果

定义三个和业务相关的类

1、一个用来封装HTTPclient,用来发送请求

2、解析结果xml的类

3、一个用于比较测试结果和期望值的类,用于验证

4、自动生成报告的类:自动发送报告之类的

(locust的python工具)

服务级:Web server(服务) Database(持久化工具-数据库)、Cache(短时间持久化工具-缓存)

接口测试:

1、构造数据

(1)通过接口构造

比如获取一个blog的文章信息,怎么构造数据呢?(文章哪里来??)—返回blog信息

通过添加文章的接口,临时构造数据(blog文章),然后断言的时候看看是不是自己造的数据——会造成接口耦合(两个程序模块有关联就叫做耦合。)—和造文章的接口耦合(如果创建文章的接口挂了,那返回blog信息的接口也就挂了)

公交卡充值依赖支付宝的支付接口服务,调用支付接口会有代价,所以模拟一个支付接口,所有通过mockserver(测试桩)去模拟支付接口的服务----不管输入是什么,返回一直成功或是固定的

(2)通过持久化层构造(更好)

意思就是在数据库直接插入数据

2、调用接口

postman/jmeter–win

CURL-linux

Paw–mac

3、对接口返回进行断言

通过不同的输入-判断不同的预期----数据驱动(输入数据)
断言参考方法:对比数据库值,code验证

4、接口测试的用例设计

功能测试用例
业务逻辑设计
业务逻辑方面的测试用例主要是针对服务端接口的处理逻辑进行的用例设计,这种用例设计不是针对某个功能点是否实现,而是对接口的处理逻辑以及一些相互依赖的业务进行验证,通常依照接口的逻辑流程图来进行。举一个例子,购物系统中的两个动作:登录和下单操作,这两个业务是相互依赖的,下单操作必须在登录完成后(登录状态下),否则无法完成下单,这个时候我们就可以设计这样一条case:没有登录的状态下进行下单操作,看服务端如何处理。

可以看到这一块有两个判断,我们需要对不同的判断分支都设计用例,以保证流程图中涉及到的分支我们都有测试用例覆盖。图中涉及到的不同的分支有:
1.abdf;
2.acg;
3.abdeg;
相应的,我们的用例就应该是:
1.userInfo != null && value(userGroup) != 0;
2.userInfo == null;
3.userInfo != null && value(userGroup) == 0;
业务逻辑的用例设计主要是以服务端接口内部的逻辑流程图为基础,针对流程图中的判断和分支进行用例设计,保证服务端接口的每一种逻辑下都有测试用例覆盖。

异常处理情况
服务端接口和客户端之间通常是通过HTTP请求来传递数据,在发送请求的时候,客户端会携带各种不同的参数,此时服务端会根据不同的参数进行不同的处理,所以异常处理主要是针对请求中的参数情况:比如参数增加和缺省、参数的数据类型错误,参数携带错误的值、参数为空等等,这需要我们根据接口文档中各种不同的参数去构造不同的参数异常,检查服务端的响应情况。

性能和安全性方面
服务器的性能往往是个非常重要的关注点,在实际的测试中我们主要关注的是接口的QPS数值,以及CPU和内存占用等性能指标,通常借助于其他工具比如LoadRunner进行性能测试。安全性方面,主要考虑一些常见的安全策略比如请求加密、sql注入等等。

二、接口测试实例

1、postman测试

2、python测试

1 # coding:utf-8
 2 import requests,unittest
 3 class V2ETestCase(unittest.TestCase):
 4     def test_ger_node_api(self):
 5         python_node_id = 90
 6         url = "https://www.v2ex.com/api/nodes/show.json"
 7         node_name = 'python'
 8         querystring = {"name":node_name}
 9         res = requests.request("GET", url, params=querystring).json()
10         print res
11         self.assertEqual(res['id'],python_node_id)
12         self.assertEqual(res['name'], node_name)
13 
14 if __name__=='__main__':
15     unittest.main()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在命令行运行(以后做自动化测试用):

报告可以生成HTML形式的-加进去

python为例:

unittest库

Requests库

Json

Dict字典

assert断言

用postman做接口测试,选择get还是post,加入数据发送请求,查看返回的结果—然后给接口做断言(点右上角的code,选择js语言,写断言)

当接口返回的数据时动态的,比如一个网站文章的最新评论----还是测试环境问题,搭建一个专属的测试环境,不产生新的数据,一样的可以测试接口—相当于动态数据静态化

“怎么做接口测试”这个问题可以分解为两个问题:
怎么设计接口测试用例?
怎么执行接口测试?

怎么执行接口测试?
Fiddler、SOAPUI、PostMan等可以做半自动的接口自动化测试;
使用Robot Framework做全自动化的接口自动化测试;
自己用代码做全自动的接口自动化测试,如Java+testNG;

自动化接口测试+生成报告思路:
在接口的开始测试阶段,我用POSTMAN来手工测试接口,单一接口测试通过后,把测试用例Copy到Jmeter中,作为后续的定期执行的基础,在接口手工全部测完后,用Jmeter+Ant+Jenkins来定期检查每天的接口,并生成测试报告,再写一个爬虫每天监控测试报告,如果出现了异常,发邮件报警。

1、每天的历史报告肯定也是需要留存的
2、有案例失败时的邮件通知

Jenkins有邮件报警和report展示的插件~ 楼主不用自己写。。。

最后应该就是测试报告了,集成于自动化的接口测试,每天的接口测试报告也是挺重要的,Jmeter的测试报告虽然也很清楚,但是并不是我想要的东西,我理想的测试报告应该有一下那么两点

测试通过率
每条测试的过程展示
测试通过率是方便查看报告的人直观的了解本次测试的结果。

测试过程的展示需要展示如下内容:测试结果、请求地址、输入参数、输出结果、断言结果。并且成功和失败的标识需要非常明显。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取 【保证100%免费】

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

  视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方进群即可自行领取。     

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python接口自动化测试流程如下: 1. 分析需求:了解被测接口的功能和预期结果,根据需求编写测试用例。 2. 环境搭建:安装Python和相应的接口测试框架(如requests、unittest、pytest等),配置开发环境,导入所需的库和模块。 3. 准备测试数据:根据测试用例设计测试数据,如参数、请求头、请求体等。 4. 编写测试接口脚本:使用框架提供的方法发送请求,接收并处理接口的响应。 5. 进行断言验证:对接口的响应进行断言,判断接口是否返回了正确的结果。 6. 执行测试脚本:运行测试脚本,观察测试结果,查看是否有测试用例失败或出错。 7. 输出测试报告:将测试结果以报告的形式进行输出,包括测试用例执行情况、成功率、失败的原因等。 8. 分析结果和Bug定位:根据测试报告和日志进行分析,定位问题的原因,如接口异常、数据错误等。 9. 修改和重测:对于发现的问题,开发人员进行修复,重新运行测试脚本,验证修复结果。 10. 维护和更新:根据项目的需要,持续对接口自动化测试进行更新,增加新的测试用例或调整现有的测试脚本。 通过以上的流程,可以实现对接口的自动化测试,提高测试效率和质量,降低人工测试的成本和风险。同时,Python作为一种简单易学且功能强大的编程语言,提供了丰富的第三方库和完善的接口测试框架,使得接口自动化测试变得更加便捷和高效。 ### 回答2: Python接口自动化测试是指使用Python语言来编写自动化测试脚本,对接口进行自动化测试的过程。下面是Python接口自动化测试的一般流程: 1. 确定接口测试的范围和目标:根据需求文档或接口文档,明确需要测试的接口、功能和参数等信息。 2. 设计测试用例:根据接口文档和需求,设计合理有效的测试用例集,包括正常情况和异常情况等不同场景。 3. 准备测试环境:搭建好测试环境,包括安装Python环境、接口测试工具和相关库等。 4. 编写测试脚本:使用Python语言编写测试脚本,通过接口请求发送数据,获取接口的返回结果,并对返回结果进行断言判断。 5. 执行测试脚本:运行测试脚本,自动化执行测试用例,并收集执行结果和日志信息。 6. 分析测试结果:对测试结果进行分析和统计,查找问题和异常。 7. 缺陷处理和修复:将测试结果中的缺陷和异常反馈给开发人员,并协调解决和修复问题。 8. 再次执行测试脚本:对修复后的代码进行再次测试,确保问题已被解决。 9. 自动生成测试报告:生成自动化测试报告,包括测试用例的执行结果、通过率、失败率、错误信息等详细信息。 10. 回归测试和维护:随着开发的迭代和更新,需要进行接口测试的回归测试,并对测试脚本和测试用例进行维护和优化。 以上是Python接口自动化测试的一般流程,通过编写Python脚本实现自动化测试,可以提高测试效率和质量,减少人工测试的工作量。 ### 回答3: Python接口自动化测试流程包括以下步骤: 1. 确定测试需求:了解需求,明确要测试的接口功能和具体的测试目标。 2. 搭建测试环境:配置Python开发环境,安装相关的测试框架和依赖库。 3. 设计测试用例:根据需求设计接口测试用例,包括正常和异常场景的测试用例。 4. 编写测试代码:使用Python编写自动化测试脚本,调用接口进行测试。使用第三方库如requests发送请求,获取接口返回值,并进行断言验证。 5. 执行测试:执行编写的自动化测试脚本,每个测试用例都会被执行,并根据结果进行记录。 6. 生成测试报告:根据测试结果生成测试报告,记录测试用例的执行情况、通过率等统计信息。可以使用第三方库如HTMLTestRunner生成美观的测试报告。 7. 缺陷管理:记录测试过程中发现的缺陷,并与开发人员进行沟通和协调解决。 8. 维护和更新:根据需求变化和接口调整,不断维护和更新测试脚本,保持测试用例的可靠性和可用性。 9. 执行回归测试:当接口或系统有新的改动时,执行回归测试,确保这些改动对其他功能没有产生负面影响。 10. 自动化持续集成:将接口自动化测试纳入持续集成流程,与版本控制、构建等工具进行集成,实现自动触发测试、自动化测试结果报告等功能。 总之,Python接口自动化测试流程包括需求确认、环境搭建、测试用例设计、编写测试代码、执行测试、生成测试报告、缺陷管理、维护更新、回归测试和自动化持续集成等环节。通过自动化测试,可以提高测试效率、降低成本、提升软件质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值