neovim下进行接口测试,并且登录token自动保存

这篇具有很好参考价值的文章主要介绍了neovim下进行接口测试,并且登录token自动保存。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

neovim下进行接口测试,并且登录token自动保存

最近一段时间最大的乐趣就是用自己配置的neovim写go代码,
现在用go代码写的接口,一开始用curl测试接口,感觉不是很方便。
就尝试能否在neovim发起接口测试。
功夫不负有心人,找到了一个插件rest.nvim。记录下安装和自己定制的lua脚本

lazy.nvim安装插件

  {
    "rest-nvim/rest.nvim",
    config = function()
      require "yuyu.config.rest" --个人的配置文件
    end,
    dependencies = { "nvim-lua/plenary.nvim" },
  }

配置快捷键

vim.keymap.set("n","<leader>ar","<Cmd>lua require('rest-nvim').run()<cr>",{desc = "接口测试"})

自动保存login的token

网上找到的脚本使用不了,还加入了sed等系统命令,决定自己尝试用neovim的一等公民lua脚本实现下

local function Split(szFullString, szSeparator)
  local nFindStartIndex = 1
  local nSplitIndex = 1
  local nSplitArray = {}
  while true do
    local nFindLastIndex = string.find(szFullString, szSeparator, nFindStartIndex)
    if not nFindLastIndex then
      nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, string.len(szFullString))
      break
    end
    nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, nFindLastIndex - 1)
    nFindStartIndex = nFindLastIndex + string.len(szSeparator)
    nSplitIndex = nSplitIndex + 1
  end
  return nSplitArray
end

local function findTokenLine(value, tab)
  for _, v in ipairs(tab) do
    if string.find(v, value) then
      return v
    end
  end
  return nil
end

-- api login的token自动保存
vim.api.nvim_create_autocmd({ "BufEnter" }, {
  pattern = "*",
  callback = function()
    if vim.bo.filetype == 'httpResult' then
      local bufnr = vim.api.nvim_get_current_buf()
      local bufc = vim.api.nvim_buf_get_lines(bufnr, 0, -1, true) --获取buf内容
      local loginLine = findTokenLine("/login", bufc)
      if loginLine  then
        local tokenLine = findTokenLine("\"token\":\"",bufc)
        local config = require("rest-nvim.config")
        local env_file = vim.fn.getcwd() .. "/" .. (config.get("env_file") or ".env")
        local rs = Split(tokenLine, "\"token\":\"")[2]
        rs = string.sub(rs,1,-3)
        rs = "token=" .. rs
        local file = io.open(env_file, "w")
        io.output(file)
        io.write(rs)
        io.close()
      end
    end
  end,
})

以上脚本会自动判断buf打开,fileType是httpResult的把指定/login接口获取到的token数据保存到.env文件
.env内容大概是这样:
token=xxxxxxxxxxxxxxxx

需要token的接口写法

### login
POST http://10.25.2.182:8080/napi/login
Accept: application/json, application/problem+json, text/plain, */*
Content-Type: application/json;charset=utf-8

{"username": "admin", "password": "xxxxx"}

### resource
GET http://10.25.2.182:8080/napi/app/resource/list
Content-Type: application/json
Authorization:  {{token}}

关键写法{{token}} rest.nvim会从.env文件找到token=对应的值替换.
通过配置的快捷键ar 运行就会请求接口的时候在头信息里自动带上 Authorization: {{token}}

后续优化的地方

.env文件还可以维护更多的变量,但是我偷懒了直接保存token=,整个文件覆盖,自己的lua脚本简单点。文章来源地址https://www.toymoban.com/news/detail-434317.html

到了这里,关于neovim下进行接口测试,并且登录token自动保存的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 批量获取用户token,并使用jmeter对秒杀接口进行压力测试(黑马点评)

    🔥🔥宏夏Coding网站,致力于为编程学习者、互联网求职者提供最需要的内容!网站内容包括求职秘籍,葵花宝典(学习笔记),资源推荐等内容。在线阅读:https://hongxiac.com🔥🔥 现在有一个秒杀优惠券的接口,需要模拟1000个不同登录用户下的秒杀场景,测试这个接口的性

    2024年02月15日
    浏览(32)
  • 快速教你如何使用postman工具进行接口测试?(配置全局token、JWT可用)

    现在很多人都在使用前后端分离进行项目开发,那在后端开发过程中使用postman测试工具可快速便捷完成接口测试。但是在测试过程中,很多人发现因为JWT的鉴权,导致半个小时就需要更新一下token,让我们的测试变得复杂。 若是将token作为全局变量,每次都能够自动获取tok

    2024年02月15日
    浏览(41)
  • 自动化测试平台(三):用户token验证及用户增删改查接口开发

    上一篇我们实现了用户登录的验证并返回token。那如何去校验请求的token是否有效呢?这篇内容为你讲解token的验证及用户管理(增删改查)的功能。 完整教程地址:《从0搭建自动化测试平台》 项目在线演示地址:http://121.43.43.59/ (帐号:admin 密码:123456)

    2024年02月03日
    浏览(62)
  • jmeter进行业务接口并发测试,但登录接口只执行一次

    业务接口性能测试,往往都是需要登录,才能请求成功,通常只需要登录一次,再对业务接口多次并发测试。 在测试计划中,添加 setUp 线程组 把登录请求放入到该线程组中,设置HTTP信息头,JSON提取(提取登录token) 通过函数助手,选择 setProperty  输入全局变量名,及引用的变

    2024年02月12日
    浏览(30)
  • 接口测试场景:怎么实现登录之后,需要进行昵称修改?

    在接口测试中有一个这样的场景:登录之后,需要进行昵称修改,怎么实现? 首先我们分别看下登录、昵称修改的接口说明: 以上业务中补充一点,昵称修改,还需要添加请求头Authorization传登录获取的token值。 分析:登录之后的响应结果中会返回用户id、token信息; 而更新昵

    2024年02月22日
    浏览(28)
  • Postman/Apifox接口测试——Pre-request自动登录

    Apifox官方使用文档中有关于  全自动登录  的实现:在运行接口用例的时候,自动完成登录,而无需手动登录。 官方教程如下: 1、将用来验证登录态的参数值设置为  {{ACCESS_TOKEN}} 2、 在  前置脚本  里引用前面创建公共脚本: 但实际使用时遇到了一些坑: 1、以 header: {

    2024年02月11日
    浏览(49)
  • 解决postman接口自动化测试中登录后401权限问题

    大家在做接口自动化测试的时候,碰到有登录的系统应该都会遇到401权限的问题,下面我来说下如何解决这个问题。   首先需要了解问题的本质,是要解决什么?这样我们才好对症下药,报401是因为用户在登录的时候,服务器会返回cookie,cookie是个校验机制,可以让服务器知

    2024年02月03日
    浏览(26)
  • 使用phpunit进行接口自动化测试

    年初一个偶然的机会接触到了phpunit,一个用PHP编程语言开发的开源软件,也是一个单元测试框架,有效利用的话可以大大提高接口遍历的效率。废话不多说,直接干货。 1.安装 在php的目录下 1 2 pear channel-discover pear; pear install phpunit/PHPUnit 2.配置 首先新建一个lib文件夹存放的配

    2024年01月20日
    浏览(38)
  • 使用ApiPost进行接口自动化测试

    自动化测试模块是针对测试人员的复杂业务的测试服务。可以在测试用例中建立一个或多个“测试计划”,“测试计划”由接口和控制器组成。 1、创建步骤 1、在API设计或API调试内保存接口。 2、打开自动化测试-测试用例,新建一个测试计划。 3、在右侧的API添加器内添加接

    2024年02月05日
    浏览(30)
  • 使用Postman进行接口自动化测试

    我们先思考一下,如果需要达到自动化接口测试的效果,那么我们在基本的模拟请求上还需要做哪些呢? 以下我粗略概括为 3 个问题(欢迎更多补充与建议): 如何判断接口是否请求成功 如何进行接口批量、定期测试 如何处理依赖接口问题(比如商品下单的接口必须要求

    2024年01月18日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包