Python-Requests之接口测试实践

3-22分享中的几点:
1,用什么工具,用什么语言取决于当前公司情况,自身情况。
2,工具的比较:jmeter-操作简单,劣势-断言不是很好,报告不是很直观
postman-可以做接口测试,但没有沉淀物
RobotFramework-资料匮乏,难维护
参照ppt中的代码实践如下:




文字是6-28五娃分享中记录的。
1,接口测试:接口测试测的是什么,接口测试是集成测试的一部分。接口测试并不等于自动化测试。
接口测试有功能性的测试、性能测试、安全测试。常规的接口测试是功能性的测试。
常规的接口测试包括:系统和系统之间的调用、上层服务对下层服务的调用、服务层间的调用。在实际中去了解下===,
2,接口测试的意义:稳、低、快。
稳:相对ui的测试来说的。接口自动化测试相对稳定,因为接口相对是稳定的。顶多是接口处增加一个字段。
低:低成本。不需要大量的编写脚本。
快:性能快,一个接口几十毫秒就测试完了,同时反馈的速度也快。给出反馈结果。
点:官网是最好的学习的手册。
3,接口测试的流程
本质跟功能测试流程一样。测试概要,测试用例,用例评审,执行测试。
1)接口用例如何设计?
根据接口文档进行用例的设计,首先要看接口自动化的目的。比如,接口的目的是现场回归测试,那么可能是保证业务的流程,要么是单个接口没有问题。如果是单个接口没问题,那就根据接口文档设计即可。如果是多接口的测试或业务流程的测试,就需要根据需求文档和接口文档结合起来进行设计。-----单接口的测试也需要看需求文档。
4,接口设计用例的目的:1,检查返回的接口是否跟接口文档中定义的一样,包括字段,返回的数据类型是否一致,返回的值与数据库中的值是否一致。实际中前者多些,尤其是针对上线后的系统。
问题1
小崔没有钱:问完成后怎么应用到jenkens,在构建处选择Execute shell.然后Command python 路径/文件.py吗
已经自问自答
问题2
瑞德:问有一次接口返回异常,直接显示0.00元。我以为是本来数据。正好测试环境数据库这个字段是空。null和为空有时候还是不清楚
如果数据库内是null,应该返回空字符串。看前段是如何处理的,是空还是空字符串,确定前段是怎么展示,再来看这个的显示。
问题3,
赵子云:接口用例的覆盖,是否像功能测试那样各种异常都要覆盖
首先明确接口测试的目的,手动的接口测试是为了做通顺与否还是为了做借口测试的各种层面的测试。明确了就好办了,根据不能目的,选择不同的颗粒度
问题4
追逐我们的明天????:问用例设计是否和功能用例设计差不多?-----答案同上
,5,接口文档的5要素
接口地址;请求方式;是否有请求参数,有的话,名称、类型,字段意义等;返回参数的说明(返回参数的类型);返回的结果
没有接口文档的话,等开发完了,功能测试阶段抓包,候补接口用例。,
6,接口测试自动化怎么做?
有很多框架:postman、jmeter、xxfromwork,自己写工具,自己写可以有很多语言,java、python等。如果用python做自动化,这里将python借助unitest。
7,setup、testcase、teardown、三项的执行顺序:
三者都执行;setup执行,case不执行,teardown执行;setup不执行,中间case不执行,因为中间case依赖于setup,teardown执行。so规律是:无论setup 是否执行,teardown都执行;如果setup异常,runtest肯定不执行
这里借助了第三方库:request库。
8,实践部分--未完成--Python接口自动化实践部分