基于Python的接口自动化-01
为什么要做接口测试
当前互联网产品迭代速度越来越快,由之前的2-3个月到个把月,再到班车制,甚至更短,每次发版之前都需要对所有功能进行回归测试,在人力资源有限的情况下,做自动化测试很有必要。由于UI更新较快,如若页面交互比较复杂,UI自动化测试将变得更加难以维护,相较之,接口自动化就显得比较简单且易于维护。此外,UI自动化测试其操作的也是数据,因此接口自动化是最简单的
如何做接口测试
本文主要讨论通过request库模拟发送Http请求,主要是get、post请求,同时使用unittest库来写测试case,首先需要导入这两个库哦
import requests,unittest
简单介绍一下get、post请求的区别吧
get:1.从服务端获取数据 2.其请求的参数拼接在url地址后,所以可能导致信息的泄露,因此是非常不安全的
post:1.向服务端发送数据,可能导致服务端数据的变更 2.其请求的数据在请求的body里面,较get请求安全些
模拟get请求
querystring = {"key":"value"}
response =requests.get(test_url,params=querystring)
模拟post请求
data={
"key1":"value1",
"key2":"value2"
}
//一般情况下是json格式的数据,记得两个参数间应用逗号隔开
headers = {
'Content-Type': "application/json",
'Cache-Control': "no-cache",
'cookie':"***********”
}
//这些参数可通过抓包工具,如fiddlers,charles中request中获取
response=requests.post(test_url, data=data, headers=headers)
#response=requests.post(test_url, data=data, headers=headers) 当headers里面没有传必须的cookie时,可在方法里面直接提交
#response=requests.request('POST',test_url, data=data, headers=headers) 一般不用这种方法,知道就行了
测试中肯定会有一件头疼的事情,那就是有依赖的业务如何测试,比如很多都是基于登录状态的
response=requests.post(test_url, data=payload,headers=headers) //获取请求
response_cookies=response.cookies //获取cookies对象
session=response_cookies.get('SESSION_ID') //获取sessionid
cookies={ //组合成cookie对象
'SESSION_ID':session
}
get、post请求可以实现了,自动化测试当然少不了断言了,代码没有人的主观判断,这个时候要用到assert,assertEqual,assertNotEqual,assertTrue,assertIsNone,assertIsInstance等方法
python中assert断言是声明其布尔值必须为真的判定,如果发生异常就说明表达示为假。assert TRUE,“ERRORMSG”
摘自:https://blog.csdn.net/qq1124794084/article/details/51668672
今天就先写这么多,当然还有很多事情可以做
如发送测试报告,借助HTMLTestRunner
如mock测试数据
等等
基于Python的接口自动化-01的更多相关文章
- 基于Python的接口自动化-读写excel文件
引言 使用python进行接口测试时常常需要接口用例测试数据.断言接口功能.验证接口响应状态等,如果大量的接口测试用例脚本都将接口测试用例数据写在脚本文件中,这样写出来整个接口测试用例脚本代码将看起来 ...
- 基于Python的接口自动化实战-基础篇之读写配置文件
引言 在编写接口自动化测试脚本时,有时我们需要在代码中定义变量并给变量固定的赋值.为了统一管理和操作这些固定的变量,咱们一般会将这些固定的变量以一定规则配置到指定的配置文件中,后续需要用到这些变量和变 ...
- 基于Python的接口自动化实战-基础篇之pymysql模块操作数据库
引言 在进行功能或者接口测试时常常需要通过连接数据库,操作和查看相关的数据表数据,用于构建测试数据.核对功能.验证数据一致性,接口的数据库操作是否正确等.因此,在进行接口自动化测试时,我们一样绕不开接 ...
- 基于Python的接口自动化-unittest测试框架和ddt数据驱动
引言 在编写接口自动化用例时,我们一般针对一个接口建立一个.py文件,一条接口测试用例封装为一个函数(方法),但是在批量执行的过程中,如果其中一条出错,后面的用例就无法执行,还有在运行大量的接口测试用 ...
- 基于Python的接口自动化
第一步 Python的安装配置 打开官网: https://www.python.org/downloads/ 目前官网上已经更新到3.6.1啦,有两个版本,大家可以按自己喜欢的去下载,我自己选择的是 ...
- python+request接口自动化框架
python+request接口自动化框架搭建 1.数据准备2.用python获取Excel文件中测试用例数据3.通过requests测试接口4.根据接口返回的code值和Excel对比 但本章只讲整 ...
- 从零学习基于Python的RobotFramework自动化
从零学习基于Python的RobotFramework自动化 一. Python基础 1) 版本差异 版本 编码 语法 其他 2.X ASCII try: raise Type ...
- 基于python的webUI自动化-小白基础篇
最近打算研究一下基于python的webUI自动化,先自学了一下相关基础知识,大概用了一个多月的时间,主要是找视频,一边看视频或者文档一边对照着敲代码运行. 重点强调:一定要一边看一边对照着敲代码运行 ...
- python+pytest接口自动化(11)-测试函数、测试类/测试方法的封装
前言 在python+pytest 接口自动化系列中,我们之前的文章基本都没有将代码进行封装,但实际编写自动化测试脚本中,我们都需要将测试代码进行封装,才能被测试框架识别执行. 例如单个接口的请求代码 ...
随机推荐
- 【题解】P1516 青蛙的约会(Exgcd)
洛谷P1516:https://www.luogu.org/problemnew/show/P1516 思路: 设两只青蛙跳了T步 则A的坐标为X+mT B的坐标为Y+nT 要使他们相遇 则满足: ...
- HDU 1258 Sum It Up(dfs 巧妙去重)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1258 Sum It Up Time Limit: 2000/1000 MS (Java/Others) ...
- sed实现路径替换
shell和sed忘得差不多了,现在更喜欢用python notebook,可以自动补充,所以很方便.但是记得以前用过这个的,试了几次不成功,搜了一下,这几个地方给的比较清晰,尤其是路径替换. 以下内 ...
- CTRL+F5 和F5 两种刷新有什么区别
- 打造开源GIS方案
现在GIS用途较多,最近要有所接触,所以决定自己打造一个已经又的方案.均以Java作为开发 二位地图:客户端:geotools,swing,geoserver; web:openlayer,geose ...
- Ajax跨域(jsonp) 调用JAVA后台
1. JSONP定义 JSONP是英文JSON with Padding的缩写,是一个非官方的协议.它允许在服务器端生成script tags返回至客户端,通过javascript callba ...
- 取消Eclipse的自动代码格式化
前段时间在Eclipse里面设置了java文件保存时自动格式化,在java->Code Style->Formatter里设置了自定义的格式化的样式,这样每次保存后都会自动格式化代码,用了 ...
- 百度 suggestion 学习demo
其他说明文字就不用写那么多了,代码很简单,相信各位道友都能看懂,看不懂的琢磨一下就可以看懂啦.贴代码!拷贝到自己的电脑中运行文件即可,不需要服务器. <!DOCTYPE html> < ...
- Intellij IDEA切换maven
问题描述: IDEA自带Maven,但不想用,想用自己安装的. 解决方案: File->Settings(快捷键:Ctrl+Alt+S) 这里分为了两个,竟然还有默认配置一说,上面的只是修改了当 ...
- 操作BOM
BOM的作用是将相关的元素组织包装起来,提供给程序设计人员使用,从而降低开发人员的劳动量,提高设计Web页面的能力. 整个window对象是整个BOM的核心. 通过BOM可实现的功能: 弹出新的浏览器 ...