学习之浅谈python如何做接口自动化

目录

前言

一、接口

二、API自动化测试(接口测试):

三、requests框架

四、自动化测试框架-------》自动化测试核心技能

1. 1 接口测试类型

1.2 如何开展接口测试

1.3 Python做接口自动化测试

结语


前言

Pycharm功能:www.jetbrains.com/pycharm

Project视图、代码结构视图、图形界面的调试功能

代码导航、语法高亮、自动补齐、错误提示、自动修复、代码重构

主流开发框架的支持(Django)、集成版本控制(git,svn)、单元测试

python操作Mysql

mysqlclient库

第三方开发的,Django推荐

文档:Welcome to MySQLdb’s documentation! — MySQLdb 1.2.4b4 documentation

安装:Pip install mysqlclient==1.3.12

获取数据记录:Fetchone, fetchmany, fetchall

如何实现python接口自动化测试

一、接口

抓包工具 fiddler charles

接口工具 postman jmeter

接口加密解密、接口鉴权

接口签名、Dubbo Ws等

二、API自动化测试(接口测试):

1、什么是接口:

接口:系统提供服务的一种形式、两个事物交互点,基于某个协议,实现数据交互

1.一定是基于网络协议来传输的

2.下发请求,基于网络协议的传输,获取到响应结果,形成最终的接口的交互

3.url相当于指定了需求访问的接口

比如:

微信支付 内部接口(两个不同的账户实现数据交互)

银联支付 第三方接口(微信系统与银行系统实现数据交互)

接口测试意义:

1、尽早介入测试

2、前端进行验证,后端还需要两次测试---->增加测试覆盖率

3、前端无法正常测试的接口测试才能更好的进行覆盖测试

2、网络协议:

1.HTTP网络协议是目前业内最为主流的网络协议

http网络协议目前主流是1.1版本,是无状态协议,意味着每一次的请求都是独立的。通过鉴权机制来实现到数据的交互。鉴权包含:cookie/Session/Token

https就是http+SSL协议(独立的安全证书)

2.tcp网络协议:通信软件。比如微信、QQ、在线客服等。

3.微服务RPC(remote procedure call),本质上外部的网关还是基于HTTP网络协议为主。内部的通讯结合各类实际业务,而设定不同的网络协议 进行交互

4.restful:不是网络协议。本身只是一种格式规范。

大部分都还是基于HTTP网络协议进行通信,而生成对应的restful的规范化格式

3、基于Python+Requests库实现接口测试:

1.requests库是适用于HTTP网络协议下的接口的测试通信。

2.所有的接口测试,都是基于接口文档来实现的

3.业务是接口测试的核心。在所有接口开发测试之前,一定要懂业务。

4.所有的参数,应该如何传递都是基于设计来定义的。

很多时候在系统中,接口彼此之间是有互相交互和联系的。

三、requests框架

Requests是自动化测试框架之一,是python实现的最简单易用的HTTP请求和发送,属 于python的第三方库

python内库 unittest logging os… 不需要安装

python第三方库 jsonpath 需要安装

本地安装:pip install requests

四、自动化测试框架-------》自动化测试核心技能

1、熟悉掌握一门编程语言python java

2、常用自动化测试框架应用:三大平台 Web + 接口 + app、原理+应用、设计理念

3、搭建落地自动化测试框架 web + 接口 + app 效率最大化

常用框架第二次开发、公共数据全局配置、日志收集、数据依赖、用例管理

4、落地自动化框架:(类似于工具postman jmeter):

易用性:不懂代码的人可以进行维护 填用例数据 配置数据 维护成本低

高效性:分布式集成 框架核心封装设计

通用性:通用所有的项目

一、结合接口文档实现请求代码构建

1、项目接口文档解读

2、规划接口自动化测试流程

项目业务–接口文档–接口用例–python脚本–pytest框架–调试&执行–Allure报告–结果分析

excel用例

Yaml用例

json用例

接口的架构

  1. 业务层
  2. 用例层
  3. 数据层
  4. 执行层
  5. 设备层 —app自动化测试
  6. 配置层
  7. 日志层
  8. 报告

3、构建接口请求python代码

===============================================================================

一、接口测试

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等

通俗一点就是输入数据,返回数据,不同种类的接口应用层协议可能不一样,传输的数据格式也可能不一样。检查业务逻辑是否满足业务需求,校验字段是否正常你实际结果是否满足预期。

接口就是前段和后端的一个桥梁,那前端的界面要如何展示出来呢,它需要通过接口从服务端去获取。目前很多的项目都是前端和后端分离开发的,前端,后端开发完成,只需要做一个联调就好了,前端没有数据也能够进行开发,我们只需要通过Mock就可以完成了。

1 . 1 接口测试类型

主要包含三种测试:

Web接口测试

应用程序接口(API, application programming interface)测试

数据库测试

测试API在不同条件下返回正确的响应或输出。此输出通常是以下三种之一:

通过或失败状态

数据或信息

调用另一个API

1 .2 如何开展接口测试

一般来说,我们开展接口测试的流程如下:

1.需求确定后,开发出API文档

2.拿到API文档,编写接口测试用例

3.开发交付

4.实施接口测试

接口测试用例跟常规的功能测试用例基本一样,可以从接口功能测试、接口业务测试、接口性能测试、接口安全测试等角度考虑

接口功能的关注点是:

1.接口每个参数输入正确与错误

2.接口参数却是

3.接口参数边界值

4.接口参数类型

项目后端接口测试内容:

【接口测试】:业务功能测试、边界分析测试、参数组合测试、异常情况测试、性能测试、安全测试

业务功能测试:正常场景、异常场景

边界分析测试:业务规则边界分析、输入输出参数边界分析:【覆盖所有的必选参数、组合可选参数、参数有|无|null、参数的顺序|个数|类型、参数类型数值大小|输入的数值的范围、参数字串长短|Null-max-max+1、参数包含特殊字符】

异常情况测试:幂等(重复提交)、并发测试、事务测试、分布式测试、环境异常、大数量测试:【同时处理大批量数据的测试、DB数据量很大时,测试DB操作】

性能测试:响应时间、吞吐量、并发数、服务器资源使用率:【CPU、内存、IO、Network】

安全测试:批量抽奖、SQL注入、敏感信息是否加密:【前后端数据传输是否加密、日志信息是否加密】

【APP测试】:基本功能测试、边界分析测试、存储测试(存储空间的读写)、性能测试、稳定性测试、兼容性测试、中断测试、交互测试、UI测试

存储测试:屏幕旋转、连贯加载页面、开多个窗口、应用互相调用、多线程下载

性能测试:响应时间:【安装、启动、跳转】、内存、cpu、gpu、fps、电量、流量、温度

兼容性测试:网络:(2G、3G、4G、wifi、断网、弱网)分辨率、机型、平台

1 .3 Python做接口自动化测试

使用python做接口自动化测试是非常简单的,python入门非常简单,通过短时间的学习后,就可以开展自动化测试了,但需要掌握如下知识:

理解HTTP

学会使用Fiddler

熟悉python基础,python数据类型、函数、模块、类

Mock服务

熟悉常用的python模块,如requests、json、configobj、pyyaml等

熟悉python单元测试框架,如unittest、pytest、nose等

熟悉python操作数据库的方法

二、持续集成

每天打开项目跑测试,那将会非常的麻烦,解决的办法就是持续集成Jenkins,点一下构建,自动完成测试,每天都能看到自己项目的质量情况、质量报告

对接口测试而言,持续集成自动化是核心内容,通过持自动化的手段我们才能做到低成本高收益。目前我们已经实现了接口自动化,主要应用于回归阶段,后续还需要加强自动化的程度,包括但不限于下面的内容:

a) 流程方面:在回归阶段加强接口异常场景的覆盖度,并逐步向系统测试,冒烟测试阶段延伸,最终达到全流程自动化。

b) 结果展示:更加丰富的结果展示、趋势分析,质量统计和分析等

c) 问题定位:报错信息、日志更精准,方便问题复现与定位。

d) 结果校验:加强自动化校验能力,如数据库信息校验。

e) 代码覆盖率:不断尝试由目前的黑盒向白盒下探,提高代码覆盖率。

f) 性能需求:完善性能测试体系,通过自动化的手段监控接口性能指标是否正常。

三、接口测试质量评估标准

a) 业务功能覆盖是否完整

b) 业务规则覆盖是否完整

c) 参数验证是否达到要求(边界、业务规则)

d) 接口异常场景覆盖是否完整

e) 接口覆盖率是否达到要求

f) 代码覆盖率是否达到要求

g) 性能指标是否满足要求

h) 安全指标是否满足要求

结语

这篇贴子到这里就结束了,最后,希望看这篇帖子的朋友能够有所收获。如果想以测试为长期发展职业目标,是需要时刻保持学习的,要使自己具备竞争力,无论你现在工作几年,只要行动起来,你就已经占优势了。祝大家2024年能升职加薪,没入职的就早日拿到心仪公司的offer,事事顺遂。

欢迎留言,或是关注我的专栏和我交流。

如果大家对Python感兴趣,这套python学习资料一定对你有用

对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习、Python量化交易等习教程。带你从零基础系统性的学好Python!

零基础Python学习资源介绍

① Python所有方向的学习路线图,清楚各个方向要学什么东西

② 600多节Python课程视频,涵盖必备基础、爬虫和数据分析

③ 100多个Python实战案例,含50个超大型项目详解,学习不再是只会理论

④ 20款主流手游迫解 爬虫手游逆行迫解教程包

⑤ 爬虫与反爬虫攻防教程包,含15个大型网站迫解

⑥ 爬虫APP逆向实战教程包,含45项绝密技术详解

⑦ 超300本Python电子好书,从入门到高阶应有尽有

⑧ 华为出品独家Python漫画教程,手机也能学习

⑨ 历年互联网企业Python面试真题,复习时非常方便

在这里插入图片描述

👉Python学习路线汇总👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)
在这里插入图片描述

👉Python必备开发工具👈

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

👉实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉100道Python练习题👈

检查学习结果。

👉面试刷题👈

在这里插入图片描述

在这里插入图片描述

资料领取

这份完整版的Python全套学习资料已经上传网盘,朋友们如果需要可以点击下方微信卡片免费领取 ↓↓↓【保证100%免费】

  • 9
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值