淘先锋技术网

首页 1 2 3 4 5 6 7

一、接口测试简介和分类

接口测试是测试系统组件间接口的一种测试

接口分为:内部接口、外部接口

二、接口测试的流程及用例的设计

  1. 拿到接口API文档(可通过抓包工具获取),熟悉接口业务、接口地址、鉴权方式、入参、出参、错误码

  1. 编写接口用例及评审

编写正例:输入正常入参,接口能够成功返回数据

编写反例:

鉴权反例:鉴权码为空/过期

参数反例:参数类型异常/长度异常

错误码覆盖:根据业务确定的

其他错误场景:接口黑名单,接口调用次数限制,分页场景

  • 接口用例文档包括:测试接口、用例标题、请求方式、预置条件、操作步骤、输入数据、预期结果

  1. 使用postman执行用例

  1. postman+Newman+Jenkins实现持续集成,并且输出测试报告并发送邮件

三、微信公众平台接口

获取微信接口的权限:

appid(ID):

secret(密钥):

四、postman的简介、安装、注册

  1. 官网安装

下载地址:https://www.postman.com/downloads/

  1. postman的注册和登录(可使用postman的云服务)

点击右上角sign in

五、执行接口测试

1、请求界面介绍

home:主页

workspaces:工作空间

collections:集合,项目集合

ApiS:api文档

environments:环境变量,全局变量

mock server:虚拟服务器

monitors:监听器

history:历史记录

2、响应页面介绍

body:接口返回的数据

pretty:以json,html,xml等不同的格式查看返回的数据

raw:以文本的方式查看返回的数据

preview:以网页的方式查看返回的数据

cookies:响应的cookie信息

headers:相应头

test results:断言结果

200:状态码

ok:状态信息

XXms:接口响应时间

XXB:响应的字节数

save response:保存响应

  • GET请求与POST请求的区别:

  1. get一般是获取数据,post请求一般是提交数据

  1. post更安全

  1. 本质区别是传参方式不一样:

get请求是在地址栏后以?的方式传参,多个参数之间用&分割

post请求是在body以表单方式传参

六、环境变量和全局变量

环境变量添加完成后,选择对应的环境,在url中将变量用双花括号,例如:{{变量名}}

  • postman全局变量和环境变量的区别

https://blog.csdn.net/sinat_33101665/article/details/128935572

七、接口关联

  1. 使用json提取器

设置成功后,后续接口可使用该变量

  1. 使用正则表达式提取器

八、postman内置动态参数及自定义的动态参数

postman内置动态参数:{{$}}

{{$timestamp}}:生成当前时间的时间戳

{{$randomint}}:生成0~1000的随机数

{{$guid}}:生成随机guid字符串

自定义动态参数

使用时加{{变量名}}

九、postman断言

1.断言方式

status code:code is 200 检查返回的状态码是否为200

response body:contains string 检查响应中包括指定字符串

response body:json value check 检查响应中其中json的值

response body:is equal to a string 检查响应=一个字符串

response headers:content-type 检查是否包含响应头content-type

response time is less than 200ms 检查请求耗时小于200ms

2.在断言中获取自定义动态参数方法:

get a global variable:pm.globals.get("variable_key");

断言中不能使用内置动态参数进行断言

3.全局断言

全局断言作用于所有接口

十、postman批量执行用例

  1. 执行入口

  1. 上传文件的接口需注意

首先在设置中打开允许读取工作目录文件的按钮

其次将需要上传的文件放入该文件夹,否则用例执行时会报错

十一、数据驱动之CSV文件和JSON文件的处理

  1. CSV文件

(1)编写需要的数据,保存为CSV文件

第一排为入参的参数名,后续为每个用例的入参

(2)入参改为{{参数名}}

(3)修改断言

(4)上传文件

  1. JSON文件

与CSV文件仅数据格式不同,其余步骤一致

十二、测试必须带请求头的接口

1.设置请求头

  1. 发送https的请求时需禁用该设置,否则可能会发送请求失败

  1. 未带请求头,接口报错

  1. 设置请求头(可从F12中复制,也可抓包获取)

在Headers中点击Bulk Edit

复制请求头,点击Key-Value Edit

  1. 编辑好请求头后,运行接口

可在preview中查看,与网页内容一致

该请求头的意思:以客户端浏览器的方式访问

2.常见请求头

Hostug.baidu.com 请求的主机地址

Connection: keep-alive 连接方式

Accept: */* 客户端接受数据格式

X-Requested-With: XMLHttpRequest 异步请求

User-Agent:客户端的用户类型

Referer:请求的来源

Accept-Encoding: gzip, deflate, br 接受的压缩方式

Accept-Language: zh-CN,zh;q=0.9 接受的语言

Cookie:cookie信息

Content-Type: text/html;charset=utf-8 请求内容的格式

当不确定哪个请求头是必要时,将所有请求头复制后再筛选

十三、mock server服务器

后端数据还未开发完成,前端需要调用后端接口,可使用mock(模拟)

1、公用mock sever

  1. 创建模拟服务器,点击mock servers

  1. 编辑接口地址、状态码、响应内容

  1. 设置模拟服务器名称

  1. 设置完成后,可查看/复制模拟服务器地址

  1. 环境变量会自动生成模拟服务器(设置时需选择)

  1. collections会自动生成该模拟服务器的项目及接口

  1. 发送该请求,请求成功

  1. 若前端需要返回的数据为json格式,例:{"error_code":0,msg:"返回成功",data:[]}

在default中修改,修改完成后可返回该数据;也可在浏览器中进行查看

  1. 设置成功后可在集合中查看mock信息

2、私有mock server

  1. 勾选该选项

  1. 打开 https://go.pstmn.io/pro-api-keys ,点击Generate API key生成一个**。

注意:生成的api key并不是专门用于mock server,还可以用于Postman提供的其他服务中。

这里可以看到我们所有生成的key,可以禁用或删除。

  1. 在请求头中加入x-api-key

十四、cookie鉴权

1、cookie的基础知识

cookie:是一小段文字,格式key=value

cookie鉴权的原理:

  1. 当客户端第一次访问服务器时,服务器就会生成cookie信息,并且在响应头的set-cookie里生成的cookie信息发送给客户端

  1. 当客户端第2~N次访问服务器时,那么客户端就会在请求头的cookie带上cookie信息从而实现鉴权

2、cookie的分类

会话cookie:保存在内存,当浏览器关闭之后就会自动化清除cookie

持久cookie:保存在硬盘,浏览器关闭之后不会被清除,只有过了失效时间才会自动清除

3、postman的cookie鉴权,token鉴权

token关联:第一个接口返回的token给第二个接口使用

cookie关联:第一个接口访问后会生成cookie信息,第二个接口访问时会自动带上cookie信息

第二个接口清除cookie信息后请求,响应会报错

当请求时数据返回的是旧数据时,是因为cookie是之前的cookie信息,需要清除cookie,重新获取cookie信息再发送请求

十五、postman实现接口的加密和解密(了解)

  1. 目前市面上的加密方式

对称式加密:DES,AES,Base64加密算法

非对称式加密:双钥(公钥,私钥,公钥加密私钥解密,私钥加密公钥解密)加密,RSA加密算法

不考虑解密:MD5,SHA1,SHA3

  1. postman如何实现加解密

MD5最广泛

十六、Newman

1、Newman基础知识

postman为接口测试而生;Newman为postman而生,Newman可让postman脚本通过非GUI(命令行)方式运行脚本。

运行命令:newman run

常用参数: -e 引用环境变量

-g 引用全局变量

-d 引用数据文件

-n 指定测试用例迭代的次数

-r cli,html,json,junit --reporter-html-export 指定生成HTML的报告

Newman的安装: https://blog.csdn.net/weixin_37600187/article/details/128078756

2、Newman运行脚本

  1. 导出用例脚本

  1. 导出运行环境

  1. 导出全局变量

  1. 拷贝数据文件至该文件夹(以上四步的文件需在同一个文件夹中)

  1. 在该文件夹通过cmd运行

  1. 运行完成后,会在该文件夹生成report.html的报告文件

十七、postman+newman+jenkins实现接口测试持续集成

  1. 安装Jenkins

  1. 下载地址:https://www.jenkins.io/zh/download/

  1. 测试是否正确

  1. 设置端口号,点击Test Port检查端口是否被占用

  1. Java JDK安装路径(Jenkins仅支持java11或java17)

  1. java8升级java17

下载地址:https://www.oracle.com/java/technologies/downloads/#jdk17-windows

  1. 安装并配置环境变量

  1. 安装完成后,进入Jenkins

本机访问的话在地址栏输入 http://localhost:8080,若是其他电脑访问页面,只需在 URL中替换主机地址为 Jenkins 服务器的 ip 地址。

  1. 解锁Jenkins

  1. 自定义Jenkins--安装推荐插件

  1. 创建管理员,实例配置

  1. 安装完成

  1. 安装过程报错

  1. 如图

解决办法

控制面板--系统和安全--管理工具--本地安全策略--本地策略--用户权限分配--作为服务登录--添加用户或组--在输入的对象名称中输入用户名,一般默认用户是Administrator--点击确定

  1. 插件安装报错

  1. 在Jenkins新建项目,点击新建item

  1. 进入配置页面

也可在首页中该项目进行配置

  1. 在general中点击高级,设置自定义工作空间的目录

  1. 在构建环境中增加构建步骤--执行windows的批处理命令

  1. 继续增加构建步骤--执行系统的groovy脚本(因为Jenkins的HTML报告样式会默认丢失,添加该步骤,防止样式丢失)

  1. 增加构建后操作步骤--生成的HTML报告集成到Jenkins

  1. 执行项目,在首页选择项目点击build now

  1. 在工作空间目录会生成报告

点击项目--HTML report也可查看报告