接口自动化测试

一、接口测试框架

接口练习地址:https://httpbin.testing-studio.com/

1.1、测试框架基本能力

  • 项目管理:pip、virtualenv
  • 用例编号:pytest
  • 领域能力:app、web、http
  • 执行调度:pytest、pycharm、shell、jenkins
  • 测试报告:allure2

1.2、HTTP测试能力

  • 请求方法构造:get、post、put、delete、head。。。
  • 请求体构造:form、json、xml、binary
  • 响应结果分析:status code、response body、json path、xpath

1.3、Requests框架

  • 功能全面:http/https支持全面
  • 使用简单:简单易用、不用关心底层细节
  • 定制性高:借助于hook机制完成通用处理

复杂数据解析

数据保存:将复杂的xml或者json请求体保存到文件模板中
数据处理:

  • 使用mustache、freemaker等工具解析
  • 简单的字符串替换
  • 使用json xml api进行结构化解析

数据生成:输出最终结果

1.4、模板技术mustache

pip install pystache
import pystache

pystache.render(
	'Hi, {{person}}!',
	{'person': 'cjw'}
)

>>> Hi, cjw!

1.5、结构化响应断言 JSON XML

json path断言

pip install jsonpath
from jsonpath import jsonpath

def test_assert_json(self):
	r = requests.get(self.url)
	assert r.status_code == 200
	assert r.json()['category_list']['categories'][0]['name'] == '开源项目'
	# jsonpath断言
	assert jsonpath(r.json(), '$..name')[0] == '开源项目'

在这里插入图片描述

1.6、hamcrest 断言体系

一般用于复杂的断言

pip install PyHamcrest
from hamcrest import *

def test_hamcrest(self):
	r = requests.get(self.url)
	assert_that(jsonpath(r.json(), '$..name')[0], equal_to('开源项目'))

1.7、schema校验

pip install jsonschema

1.8、schema自动校验

  • 每次运行的时候自动保存当前的schema
  • 下次运行对比上次的schema如果发现变更就报错
  • saveSchema + diffSchema

二、header cookie 处理

2.1、Cookie简介

Cookie的使用场景

在接口测试过程中,很多情况下,需要发送的请求附带cookies,才会得到正常的响应的结果。所以使用python+requests进行接口自动化测试也是同理,需要在构造接口测试用例时加入cookie。

传递Cookie的两种方式

  • 通过请求头信息传递
  • 通过请求的关键字参数cookies传递

2.2、认证体系

2.2.1、http basic

基本认证:是允许http用户代理在请求时,提供用户名和密码的一种方式

GET /private/index.html HTTP/1.0
Host: localhost
Authorization: Basic QWxhzGRpbjpvcGVuIHNlc2FtZQ==

在自动化测试的过程中,可以使用requests库中的auth参数传递认证信息,通过requests.auth 包中的HTTPBasicAuth类构造认证信息。

  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值