一 接口自动化框架

一 框架结构

二 结构说明

- API 用于封装被测系统的接口(用request模块封装的请求方法)

- TestCase 将一个或多个接口封装成测试用例,并使用UnitTest管理测试用例 TestCase可以

- 为了方便维护测试数据,可以把测试脚本和测试数据分离开

- 通过UnitTest断言接口返回的数据,并生成测试报告

三 接口自动化

简单示例

import re, jsonpath, pytest, requests

class TestApi:
def test_01_api(self):
res = requests.get(url="http://127.0.0.1:8000/api")
print(f"res={res.text}")
# 正则表达式提取
result = re.search('"user":"(.*?)"', res.text)
print(f"result={result}") def test_02_api(self):
res = requests.get(url="http://127.0.0.1:8000/api")
# 通过jsonpath取值
value = jsonpath.jsonpath(res.json(), "$.data[0].goods[0].price")
print(f"value={value}") if __name__ == '__main__':
pytest.main(['-s']) #-s 显示测试执行的输出信息

接口自动化问题:

1 统一请求问题

2 断言

3 接口关联:用到re提取器和jsonpath提取器

4 动态参数

5 csv数据驱动

6 日志监控

7 异常处理

8 基础路径设置

二 正则表达式提取器

同postman,jmeter的正则表达式提取器和json提取器

特点:可以处理所有类型的返回数据。

(.+?) 匹配任意一个字符1-N次
(.*?) 匹配任意一个字符0-N次

三 jsonpath提取器

可以在http://jsonpath.com/站点进行验证JsonPath的执行效果。

特点:jsonpath只能提取json格式的数据。

json是一种轻量级的数据格式。由两种数据组成:

- 对象:由大括号括起来的用逗号分隔的成员,成员由键值对组成。如{"name":"jj","age":"16"}

- 数组:由中括号括起来的一组值。如["A","B"]

语法格式:

$ 根节点
.或[]

获取子节点的对象。如$.name,$.["name"]

区别:[]可以同时取多个节点,如$["name","age"]

数组可以通过[]处理

$.data[0].goods[0].price #0表示取数组第一个值

$.data[1:] #下标从1开始到最后[切片取值]

️ 两种情况用[]:

1 数组取值

2 取子节点

.. 相对路径取值,递归取值。适用值唯一。如$..name
*

通配符。如

$.*:匹配到根节点下所有节点的值

$..*:递归匹配到根节点下所有的对象

接口自动化框架两大神器-正则提取器和Jsonpath提取器的更多相关文章

  1. 转载:python + requests实现的接口自动化框架详细教程

    转自https://my.oschina.net/u/3041656/blog/820023 摘要: python + requests实现的接口自动化框架详细教程 前段时间由于公司测试方向的转型,由 ...

  2. python + requests实现的接口自动化框架详细教程

    前段时间由于公司测试方向的转型,由原来的web页面功能测试转变成接口测试,之前大多都是手工进行,利用postman和jmeter进行的接口测试,后来,组内有人讲原先web自动化的测试框架移驾成接口的自 ...

  3. python3+request接口自动化框架

    首次书写博客,记录下写的自动化接口框架,框架比较简单,哈哈哈,算是记录下历程把!~~~ 一.本次框架由python3.6 书写 1.准备代码环境,下载python3.6    下载地址:https:/ ...

  4. 接口自动化框架2-升级版(Pytest+request+Allure)

    前言: 接口自动化是指模拟程序接口层面的自动化,由于接口不易变更,维护成本更小,所以深受各大公司的喜爱. 第一版入口:接口自动化框架(Pytest+request+Allure) 本次版本做了一些升级 ...

  5. Jmeter+ant+Jenkins接口自动化框架搭建

    摘自:https://testerhome.com/topics/13389 一.背景  上一篇讲了Jmeter 接口自动化-脚本数据分离实例,我们知道怎么利用Jmeter去编写接口自动化脚本,但是接 ...

  6. Jmeter+Ant+Jenkins接口自动化框架

    最近应公司要求,搭建一套接口自动化环境.看到通知邮件,没有多想就确定了Jmeter路线.可能有些人会 说,为啥不用python,相对而言高大上一些.因为公司内部现在项目有用到Jmeter,正好可以结合 ...

  7. 接口自动化框架(Pytest+request+Allure)

    前言: 接口自动化是指模拟程序接口层面的自动化,由于接口不易变更,维护成本更小,所以深受各大公司的喜爱. 接口自动化包含2个部分,功能性的接口自动化测试和并发接口自动化测试. 本次文章着重介绍第一种, ...

  8. [转载]为何 Emacs 和 Vim 被称为两大神器

    Emacs 是神的编辑器,而 Vim 是编辑器之神.二者为何会有如此美誉,且听本文向你一一道来. 目 录 0. 序章:神器的传说 1. 无敌的可扩展性 1.1 可扩展性给了软件强大的生命 1.2 Em ...

  9. Python+Pytest+Allure+Git+Jenkins接口自动化框架

    Python+Pytest+Allure+Git+Jenkins接口自动化框架 一.接口基础 接口测试是对系统和组件之间的接口进行测试,主要是效验数据的交换,传递和控制管理过程,以及相互逻辑依赖关系. ...

  10. python+request接口自动化框架

    python+request接口自动化框架搭建 1.数据准备2.用python获取Excel文件中测试用例数据3.通过requests测试接口4.根据接口返回的code值和Excel对比 但本章只讲整 ...

随机推荐

  1. 几款Android 应用自动化测试工具

    本文转自:https://blog.csdn.net/hebbely/article/details/78901466 简述: 本文介绍几款流行的 Android应用自动化测试工具. Monkey测试 ...

  2. Lua中对自定义二维表进行添加、修改、计算、删除、判断是否存在操作

    引言: 最近刚稍微深入了解一下Lua,正好最近需要用到Lua中对表的操作,于是借助现有的了解实现了对一个简单的二维表进行添加.修改.计算.删除及判断存在的操作 表的创建及相关方法: 1. 创建表及自定 ...

  3. pytorch学习笔记(9)--损失函数

    1.损失函数的作用: (1)计算实际输出和目标输出之间的差距: (2)为我们更新输出提供一定的依据(也就是反向传播) 官网链接:https://pytorch.org/docs/1.8.1/nn.ht ...

  4. pytorch学习笔记(3)--dataset使用

    下载数据集 import torchvision from torch.utils.tensorboard import SummaryWriter dataset_transform = torch ...

  5. nacos之服务注册、发现及维持心跳

    注册服务(增加健康检查)  服务发现(默认15s没有心跳请求,则自动注销服务)  心跳(维持服务运行状态) 参数说明 serviceName:服务名称 beat:服务的详细信息 ip 端口等,json ...

  6. 利用matlab求解函数微分

    利用matlab解决求解函数微分 matlab,微分 1. 问题提出 最近在复习高等数学,感觉可以结合 去理解他. 遇到了一个题目: 2. 具体代码 %{ 解决函数微分问题 %} clc; clear ...

  7. Python 的入门学习之 Day1~3 ——from”夜曲编程“

    Day 1(原点) time: 2021.7.29. 以下为补录内容: 今天是编程学习的第一天,很开心.Here is the place where I start, which belongs t ...

  8. noi 1.1 5 输出保留12位小数的浮点数

    描述 读入一个双精度浮点数,保留12位小数,输出这个浮点数. 输入 只有一行,一个双精度浮点数. 输出 也只有一行,保留12位小数的浮点数. 样例输入 3.1415926535798932 样例输出 ...

  9. C++ push_back()函数应用

    最近在学习Opencv,用C++写程序,做了一个虚拟画笔的项目,即通过摄像头采集视频图像信息,识别视频中的画笔,并画笔在空中的划痕显示在视频图像上.在进行到划痕显示的,由于视频是实时采集的,检测到的画 ...

  10. vue后台管理系统——订单管理模块

    电商后台管理系统的功能--订单管理模块 1. 订单管理概述 订单管理模块用于维护商品的订单信息, 可以查看订单的商品信息.物流信息,并且可以根据实际的运营情况对订单做适当的调整. 2. 订单列表 在c ...