Postman 保姆级使用

2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)_软件测试刷题小程序-CSDN博客文章浏览阅读3k次,点赞86次,收藏13次。你知不知道有这么一个软件测试面试的刷题小程序。里面包含了面试常问的软件测试基础题,web自动化测试、app自动化测试、接口测试、性能测试、自动化测试、安全测试及一些常问到的人力资源题目。最主要的是他还收集了像阿里、华为这样的大厂面试真题,还有互动交流板块……_软件测试刷题小程序​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502icon-default.png?t=N7T8https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502

Postman 使用

当前使用postman版本:10.24.7

Postman可以创建多个工作空间 workspace,每个workspace都是个独立的空间,workspace内功能由 Environments、Collections组成使用。Environments默认有全局变量 Globals,这个下面变量Variable是在整个工作空间 workspace下生效的,除此之外还可以根据自己有多少环境相应的环境变量,Globals和自定义的环境下Variable可以相同,自定义环境切换到哪个就使用哪个环境里面的值,但环境里的变量是会覆盖Globals内的同名变量的,所以Globals内放置的都是全局公用的变量,多个环境内变化的变量才会放到自定义环境内

创建workspace

image-20240403132228425

删除workspace

image-20240403132436459

image-20240403132502682

创建Collection与request

image-20240403134014570

WX20240409-133906@2x.png

WX20240409-133258@2x.png

环境变量 Environments

image-20240403140122922

image-20240403140619444

使用环境变量传递数据

这里以token使用为例,正常每个请求都需要附带token才能进行请求,当掉用登录接口后,拿到token填入header中的Authorization进行下一步掉用,如果有特别多接口就非常不方便了,这里就可以将登录后拿到的accessTokenrefreshToken

放到环境变量中,其他地方直接使用变量填入响应的值,这里是使用Tests功能,它允许在发送请求后自动执行一些测试,并对服务器返回的响应进行验证

image-20240403143343930

image-20240403144717668

image-20240403145123167

image-20240403145550859

这里不止环境变量,Globals变量、集合变量也是可以用于Tests脚本设置的

pm.globals.set("variableName", value); // 设置全局变量

pm.collectionVariables.set('variableName', value) // 设置集合变量

pm.variables.set("variableName", value); // 设置局部变量
// 局部变量或临时变量非常适合存储仅在当前请求或脚本执行期间需要的数据。不会被永久保存在 Postman中,也不会对其他请求或环境产生影响

至于获取token这里,不止使用Tests来设置,使用Pre-request Script也是可以的,不过这里需要使用js编写完整的登录请求获取结果再设置环境变量,postman里不能在Pre-request Script直接调用现有的登录接口

如果使用Pre-request Script,可以在集合上面来设置预运行脚本,这样集合下面的每个请求都会在发送请求前运行集合上的Pre-request Script脚步

image-20240403155555558

const d = new Date();
const t = d.getTime();
const lastRefreshTokenTime = parseInt(pm.environment.get("lastRefreshTokenTime"));
// 时间超过一个小时就重新登录刷新token	
if (t-lastRefreshTokenTime < 3600000) {
    return
}

const url = pm.globals.replaceIn("{{transportProtocol}}://{{host}}:{{port}}/user/login")


const req = {
    url: url,
    method: 'POST',
    header: {
        'Content-Type': 'application/json'
    },
    body: {
        mode: 'raw',
        raw: JSON.stringify({
            username: pm.globals.get('account'),
            password: pm.globals.get('password')
        })
    }
};
pm.sendRequest(req, function (err, response) {
  // 这里状态码判断逻辑根据实际修改
    if (response.code === 201) {
        const data = response.json()
        pm.environment.set('TOKEN', data.data.accessToken)
        pm.environment.set('REFRESH_TOKEN', data.data.accessToken)
        return
    }
    console.log(`Error: ${JSON.stringify(response.json())}`)
});
Pre-request Script与Tests使用场景

Pre-request Script会在请求发送前先执行,所以可以在这里调用其他接口,将数据添加到请求参数、headers里面,还可以在请求前根据请求生成验签数据等操作

Tests是在请求完成后才执行的,这时可以通过pm.response拿到请求结果数据了,所以就可以将部分数据存储到变量中用于其他接口使用,也可以对请求结果做断言测试

// 请求前设置header参数
pm.request.headers.add({key:'X-SIGNATURE',value:XSIGNATURE});

// 获取请求前headers、请求方式、params、body、url。这些数据都在 pm.request 里面可以获取到
// 注意有些值是以数组的类型存储的,不过postman应该对这些数组做了修改,像.length、.forEach等函数是不能使用的
const headers =  pm.request.header
const httpMethod = pm.request.method
// 注意body的数据格式 { mode: 'raw', raw: { pageIndex: 0, pageSize: 10, }, options: { raw: { language: 'json' } }, };
const body = pm.request.body
// pm.request.url 包含内了protocol、path、host、query等数据按需取用即可
const query = pm.request.url.query
const protocol = pm.request.url.protocol
const path = pm.request.url.path
const host = pm.request.url.host

// 获取响应状态码
const responseCode = pm.response.code;
// 获取响应头
const responseHeaders = pm.response.headers;
// 获取响应体
const responseBody = pm.response.text();
// 将响应体解析为 JSON 对象,response返回的数据是Buffer类型的,正常使用需要转换
const jsonResponse = pm.response.json();
// 获取响应中的 Cookie
const responseCookies = pm.response.cookies;
可使用的外部库

learning.postman.com/docs/writin…

postman可用的外部库官网有13个:ajv、atob、btoa、chai、cheerio、crypto-js、csv-parse/lib/sync、lodash、moment、postman-collection、tv4、uuid、xml2js

部分NodeJS模块也是可以使用的,具体有哪些可以看一下文档

参数传递事例

事例为角色列表接口获取数据,随机从取到的数据中取一个对象,将其中两个字段放到集合变量中,供角色详情接口查询使用

image-20240408135854593

image-20240408140011437

image-20240408140136111

image-20240408140254322

// Tests 脚本

const response = pm.response.json()

var roleList = [];
// console.log(response);
if(response.success && response.data.data.length>0){
    roleList = response.data.data
    let max = response.data.data.length
    let randomNum = Math.floor(Math.random() * max)
    let role = roleList[randomNum];
    // console.log('role',role)
    pm.collectionVariables.set('applicationCode',role.applicationCode)
    pm.collectionVariables.set('roleCode',role.roleCode)
}

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群: 759968159,里面有各种测试开发资料和技术可以一起交流哦。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

​​​

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。在这里插入图片描述​​​

在这里插入图片描述

​​​

  • 22
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Postman是一款非常强大的API测试工具,除了基本的请求发送和响应查看外,还有很多高级功能可以提高测试效率和准确性。以下是一些Postman高级使用教程: 1. 变量和环境:使用变量和环境可以方便地管理测试数据和配置,避免重复输入和修改。可以在请求中使用{{variable}}的形式引用变量,也可以在环境中定义全局变量和环境变量。在测试集合中可以切换不同的环境,以便在不同的环境中运行测试。 2. 脚本:Postman支持JavaScript脚本,可以在请求前、请求后、测试前、测试后等不同的阶段执行脚本。脚本可以用来生成动态数据、处理响应结果、验证测试结果等。可以在请求或测试的“Tests”选项卡中编写脚本。 3. 数据驱动测试:使用CSV或JSON文件可以实现数据驱动测试,即在同一个请求中多次执行相同的操作,但使用不同的数据。可以在请求的“Pre-request Script”选项卡中读取数据文件,并将数据保存为变量,然后在请求中使用变量。 4. Mock服务:Mock服务可以模拟API的响应,以便在API尚未实现或不可用时进行测试。可以在Postman中创建Mock服务,并设置Mock响应的结构和内容。Mock服务可以在Postman中直接测试,也可以通过URL共享给其他人使用。 5. 自动化测试:Postman支持自动化测试,可以使用第三方工具(如Newman)在命令行中运行Postman测试集合,并生成测试报告。可以将自动化测试集成到CI/CD流程中,以便在每次代码提交后自动运行测试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值