Python接口自动化浅析登录接口测试实战

Python接口自动化浅析登录接口测试实战 上一篇文章属于接口自动化测试系列, 其题目是接口自动化浅析单元测试原理, 它主要介绍单元测试, 介绍模块特性, 介绍大致流程, 介绍源码, 还介绍实战例子。以下主要介绍接口概念、接口用例设计及登录接口测试实战。1、什么是接口交互点被检测, 其存在于外部系统与系统之间, 同时也存在于内部各个子系统之间, 而此交互点通过接口来实现。简而言之, 接口乃是衔接前后端的桥梁, 接口测试可被轻易理解成脱离了前端的功能测试。一个又一个的接口就对应功能测试内一个又一个的功能。但注意一个功能有可能不是一个接口就能实现。那么接口测试和功能测试的区别在哪呢其实功能测试就是在页面上输入我们的参数值点点点接口测试不存在前端, 它并非依靠前端, 而是借助接口文档里的调用地址、请求参数等内容, 以此来校验所返回的结果值。也就是说接口可以看成没有界面的功能测试。因而, 能够剖析得出, 系统相互之间的接口涵盖了三个部分, 分别是: 输入, 处理逻辑, 输出。2、如何开展接口测试接口测试流程如下1.需求评审熟悉业务和需求2.开发提供API接口文档3.根据开发交付的接口文档编写接口测试用例4.接口测试用例评审5.开始执行接口测试6.提交测试报告3、如何设计接口用例1.获取接口文档一般性公司的开发行为会给出接口方面的文档, 要是不存在接口文档的情况那就自行去抓包好了(摸摸头) , 对于那些不清楚怎样进行抓包操作的小伙伴而言, 可以去瞧瞧此前的系列文章。执行测试期间, 接口的相关文件是最为关键的一项参照依据, 一份合乎规范的此类文件起码涵盖:1.接口说明2.调用URL3.请求方法get、post等4.请求参数、参数类型、请求参数说明等5.返回参数说明如下为一个简单的登录接口文档2.分析接口文档的接口提取测试点接口测试用例跟常规的功能测试用例基本一样能从接口功能测试的角度去思量, 能从接口业务测试的角度去考量, 能从接口性能测试的角度去思索, 能从接口安全测试的角度去琢磨等。为接口的逻辑校验而展开的后续具体操作, 能够借助接口流程图当作参照依据来开展设计步骤, 针对其中一个分支的具体测试安排, 应为将其视作一个独立的重要场景去着手进行测试工作, 并且此测试工作务必涵盖到被提及的流程图里面具备的所有逻辑分支操作情况。对于接口的参数校验, 可要依照接口文档当中参数的定义去开展验证, 当中包括要覆盖到所有参数对应的每个枚举值以及每一个错误码等相关信息。3.接口测试用例设计思路接口功能的关注点是1.接口参数正确与否接口传入的参数是否有正确填写2.接口参数存在缺失情况, 这些参数当中, 有必须要填写的参数还有可以选择填写的参数, 在进行传参的时候, 要去测试因为参数缺失而对结果所产生的影响。3.接口参数存在边界值状况, 像用户名、密码存在长度方面的限制, 要对不同长度的参数展开测试, 以此探究其对结果所产生的影响。4.接入端口参数种类, 像是接入端口文档里使用者姓名那个种类, 查验传入其它数据种类对于最终成果所产生的作用影响。4.接口测试其他范围接口业务测试重点在于自业务的视角着手, 将接口整合为一条业务链, 像登录完毕后进行充值, 于数据库里金额是否精准无误等等。接口的性能测试需明确的是, 此所指的乃是接口究竟能不能契合业务的相关要求, 举例来说, 若业务规定系统务必能够达成 50 个人在同一时刻进行下单这一状况, 进而下单这个接口就必须得具备能够承受 50 TPS 的能力, 当下在业内普遍采用于开展接口性能测试工作, 而接口性能方面在后续情形下将会专门于系列文章之中给予介绍。接口安全测试接口安全性, 主要围绕Token机制展开设计, 还围绕Sign机制展开设计, 以此保证接口数据不会面临被篡改的情况, 也不被遭受重复调用。注意: 本文着重于接口功能测试, 想必那些做过功能测试的同学, 设计接口测试用例也是不存在问题的。4、接口测试用例实战以下我们以登录接口进行实战。跟着代码模块渐渐变多, 掺和一起, 毫无秩序规则而言, 就在此时此刻, 我们开始思索架构分层这事了, 前篇文章: 谈及接口自动化当中的请求封装, 所封装而成的请求类, 但凡每个用例都需要去调用的, 能够放置于公共模块里头。在项目下新建一个文件夹放入请求模块.py.pyimport requests class RequestsHandler: def __init__(self): session管理器 self.session requests.session() def visit(self, method, url, params None, data None, json None, headers None): result self.session.request(method,url,paramsparams,datadata,jsonjson,headersheaders) try: # 返回json结果 return result.json() except Exception: return not json def close_session(self): self.session.close()编写登录接口用例调用封装的请求类。登录用例新建一个文件夹用来存放用例模块。.pyimport unittest from common.requests_handler import RequestsHandler class LoginTest(unittest.TestCase): def setUp(self): # 请求类实例化 self.req RequestsHandler() def tearDown(self): self.req.close_session() def test_login_success(self): login_url http://127.0.0.1:8000/user/login payload { mobile_phone: 1530272****, pwd: 12345678 } res self.req.visit(post,login_url,jsonpayload) self.assertEqual(0, res[code]) if __name__ __main__: unittest.main()运行结果为Ran 1 test in 0.213sOK对于用例的一些总结setUp执行测试用例先要有前置条件, 执行完测试用例还要有后置条件, setUp负责实例化, 在运行测试用例之前要获取管理器, 要在试验验证运用案例的过程结束之后赶紧尽快飞速赶快飞速地关闭管理器。对于断言小伙伴们或许不清楚究竟该选用返回结果里的哪一个字段开展断言。依个人看法而言, 要是code、msg足够详细的情形下, 能够借助code、msg当中的一个去进行断言, 当然, 把code、msg一同用来做断言也是可行的, 甚至当你觉得返回结果里的某一个数据契合你所预期的状态时, 同样是能够将其拿来用于断言的, 要知道断言方式是灵活多样变化多端的, 你可以自行去挑选最为合适的方案。小伙伴们瞅见总结, 退出微信, 而后打开王者荣耀, 利落连贯地完成此事, 可实质并不是就结束了, 我们撰写了正向应使用的示例, 并且还编写好了两条异常状况下应使用的示例, 更多的关于异常状况的应使用示例能够自己去拓展一番。import unittest from common.requests_handler import RequestsHandler class LoginTest(unittest.TestCase): def setUp(self): # 请求类实例化 self.req RequestsHandler() def tearDown(self): # 关闭session self.req.close_session() def test_login_success(self): 正确手机号正确密码 login_url http://127.0.0.1:8000/user/login payload { mobile_phone: 1530272****, pwd: 12345678 } res self.req.visit(post,login_url,jsonpayload) # 根据请求结果中的code进行断言 self.assertEqual(0, res[code]) def test_phone_is_null(self): 手机号为空密码正确 login_url http://127.0.0.1:8000/user/login payload { mobile_phone: , pwd: 12345678 } res self.req.visit(post, login_url, jsonpayload) # 根据返回结果中的msg进行断言 self.assertEqual(手机号码为空, res[msg]) def test_pwd_is_null(self): 正确用户名密码为空 login_url http://127.0.0.1:8000/user/login payload { mobile_phone: 1530272****, pwd: } res self.req.visit(post, login_url, jsonpayload) # 根据返回结果中的msg进行断言 self.assertEqual(密码为空, res[msg]) if __name__ __main__: unittest.main()测试结果为Ran 3 tests in 0.259sOK以上代码如下痛点至此说到这儿, 这么一篇紧密关联着接口自动化来剖析登录接口测试的文章, 就给介绍到这儿, 更多与之相关的接口自动化之中的登录接口测试具体内容, 要去搜索脚本之家往昔所发布的文章, 或者持续去浏览下面那些衔接的文章, 期望大家往后能够多多给予脚本之家各方面充裕深切的支持