基于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 接口自动化系列中,我们之前的文章基本都没有将代码进行封装,但实际编写自动化测试脚本中,我们都需要将测试代码进行封装,才能被测试框架识别执行. 例如单个接口的请求代码 ...
随机推荐
- spring异常+自定义以及使用
1.首先自定义异常 DataException: package com.wbg.maven1128.exception; public class DataException extends Exc ...
- Python—面向对象02
1.抽象类与归一化 接口,即提供给使用者来调用自己功能的方式.方法.入口 为什么要使用接口? 接口提取了一类共同的函数,可以把接口看做一个函数的集合 然后让子类去实现接口中的函数 这么做的意义在于 ...
- linux命令进阶及和windows进行文件传输的所有方式
1.图例 ------>原图出处 2. 结构图 根目录说明 3.linux相关命令 cd(change directory切换目录): cd /. 进入根目录 cd .. 返回上一次目录 cd ...
- 兼容性良好的 sticky-footer 布局
<div class="content"> <div class="content-wrapper"> <div class=&q ...
- JS基础——数组API之数组操作(filter、map、some、every、sort)
var arr = [1,2,3,4]; forEach arr.forEach((item,index,arr) => { console.log(item) //结果为1,2,3,4 } ...
- 【PTA 天梯赛训练】六度空间(广搜)
“六度空间”理论又称作“六度分隔(Six Degrees of Separation)”理论.这个理论可以通俗地阐述为:“你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过五个人你就能够 ...
- 在ReactNative中使用Typescript
在ReactNative中使用Typescript 少侠放心,跟着我的这个步骤走,保你完美在RN项目中使用Typescript,废话不多说,走你 1.全局安装create-react-native-a ...
- 一个 mr 作业跑的比较慢,如何来优化。
mr跑的慢可能有很多原因,如:数据倾斜.map和reduce数设置不合理.reduce等待过久.小文件过多.spill 次数过多. merge 次数过多等. 1.解决数据倾斜:数据倾斜可能是parti ...
- 使用mysql5.7版本数据库需要注意的地方/持续更新
数据库mysql 5.7版本的初始密码修改 安装完后实在是找不到初始密码的文件,后面发现再错误日志中 先关闭mysql pkill mysqld 安全模式启动数据库并修改密码 mysqld_safe ...
- 二、Django需要的知识点
1.请求(request): 客户端到服务器端. 响应(response):服务器端到客户端. HTTP/1.1 协议共定义了 8 种请求方式,分别是: OPTIONS. HEAD. GET. POS ...