接口测试

1.接口测试:接口

2.接口测试:接口测试(重点)

A. Who 是什么

测试后端实现是否符合接口规范

B. Why 为什么

程序安全,效率

C. What 怎么用

模拟客户向服务器发送数据,然后查看响应

要素1:定位服务器资源(通过 URL 实现:http://www.baidu.com|http://127.0.0.1)

要素2:模拟用户提交数据

要素3:查看响应的结果是否符合预期

D. 接口测试

类型1:web 接口测试(BS 架构)

|---- 服务器接口测试:测试自己公司写的程序

|---- 第三方接口测试:测试别的公司实现的接口

类型2:模块接口测试(CS 架构)

3.接口测试:环境搭建

A. Who 是什么

B. Why 为什么

C. What 怎么用

  1. 运维或开发实现程序部署,正常运行

  2. 自己搭建

    1. 安装python

    2. 安装依赖模块:

      1. python3.5以上版本
      2. pip install -r requirements.txt
      若安装慢则:
      pip install -r requirements.txt -i https://pypi.douban.com/simple
      3. 如果须使用mysql,那么需要将studentManagementSystem/studentManagementSystem.settings.py的第78行的配置更改以下,注释sqllite3
      4. 执行studentManagementSystem.sql文件,生成数据库
      5. 启动命令: python run_server.py
      6. 默认端口是8000,地址本机ip
    3. 学生管理系统简介

      核心:学生表 班级表 学院表

      操作:3 张表的增删改查

4.接口测试:插件

A. Who 是什么

火狐-RESTClient

谷歌-POSTman

Jmeter

B. Why 为什么

C. What 怎么用

5.接口测试:RESTful 风格 (重点)

A. Who 是什么

RESTful 风格中规范了,

URL的实现方式,

提交的数据实现方式,

响应的数据实现方式...

B. Why 为什么

 

C. What 怎么用

RESTful 风格是约束接口操作的四种操作以及三个要素

增:

要素1: URL + POST

要素2: 多个数据

方式1: 键=值&键=值

方式2: JSON 格式

要素3:

状态码:200|201 + 添加的记录

删:

要素1: URL + GET|DELETE

要素2:

方式1:键=值&键=值

要素3: 200 | 204 + 无

改:

要素1: URL + POST|PUT(更合适)

要素2:

方式1: 键=值&键=值

方式2: JSON 格式

要素3: 200 | 201 + 修改后那条记录

查:

要素1: URL + GET

要素2: 常用方式1 URL?键=值&键=值...

要素3: 200 + 一条记录或多条记录

 

状态码:

404 --- 资源路径有误

505 --- 服务器异常

6.接口测试: JSON

A. Who 是什么

A-1, JSON 是一种数据载体:

A-2, 互联网本质就是数据传输, 数据传输需要数据载体,比如: 页面信息就是存储在 html 这种数据载体中的

A-3, HTML 格式.

XML 格式.

A-4, JSON 优化数据传输

B. Why 为什么

JSON 传输数据效率更高,所以部分场景下使用 JSON 替换 html 和 XML.

C. What 怎么用

7.接口测试:实战

目的:RESTful 风格联系

A, 安装并运行学生管理系统

B, 获取并读懂接口规范

B-1,从前期文档中提取接口清单

API 文档:application programing interface 应用程序编程接口

接口清单的由来

B-2,接口清单读懂

要素1:URL+ 请求方法

要素2:提交的数据

要素3:响应的结果

C,逐一测试接口

 

总结:

1, 新增数据时,数据时JSON格式的,必须设置浏览器的http请求头,不然会当成普通文本处理

Content-Type : application/json;charset=utf-8(记住)

Content-Type: 提交的内容类型

application/json : 数据类型是 JSON 格式 | 大类型/小类型 img/jpg img/png

charset=utf-8: 设置编码集,utf-8 支持世界所有字符

 

A. Who 是什么

B. Why 为什么

C. What 怎么用

 

Jmeter: 概述

A:是什么?

Jmeter 是 Apache 公司使用 Java 开发的一款测试工具.

bin: 存储了 Jmeter 的课执行程序,比如启动程序

lib: 存储了Jmeter 整合的一些功能(一些 .jar 文件的小程序)

启动 Jmeter

启动方式1:bin/ApacheJmeter.jar 双击

启动方式2: jmeter.bat windows 下的启动程序

jmeter.sh linux 下的启动程序

B:为什么?

高效,功能强大

C:怎么用?

Jemter:线程组

进程:一个正在执行的程序就对应一个进程

线程:进程中的执行线索(一个进程有多个执行线索)

线程组:按照现成性值对现成进行分组

 

并发执行:多个现成同时执行 特点:执行结束的顺序和现成的启动顺序不一定一致;

顺序执行:按照现成的启动顺序挨个执行

怎么用?

C-1,三者关系:进程有多个线程组,线程组可以有多个线程

进程--测试计划

线程组---现成组

现成---线程组属性的线程数

C-2,默认情况下,线程组中的现成hi并发执行的

每一个现成都要执行组内的 http 请求

C-3,怎么设置线程组顺序执行

勾选测试计划的第一个复选框(独立运行每个线程组)

C-4,

D,练习:学生管理系统增删改查

 

调度器

定时请求,定时器

Jmeter 组件: 参数化概述(了解)

A,参数化就是动态的获取并设置数据

B.执行批量操作时,批量插入或批量删除,之前数据都是手写的,每执行完都需要修改一次,效率太低.

参数化就是可以以程序代替人工获取并设置数:安全+高效

Jmeter 组件:参数化实现之CSV Data Set Config(重点重点)

通过这个组件可以动态获取并设置数据,实现类似铺量添加操作(执行一次,将多条数据插入到数据库)

实现思想

 

实现流程

右键线程组 -> 添加 -> 配置原件 ->CSV Data Set Config

CSV(逗号分割值文件格式)

测试计划中,勾选独立运行每个线程组,可以控制是否按顺序执行每个线程组.

setUp 和 tearDown

Set Up 线程组:最先执行的线程组

加载程序主题执行所需的资源

Tear Down 线程组:最后执行的线程组

程序正式关闭之前,可以将数据保存进内存

 

 

 

原文地址:https://www.cnblogs.com/521world/p/11256597.html