• 0
  • 0
分享
  • 软件测试技术之接口测试的N种玩法——软件测试圈
  • 饼干 2024-09-19 15:00:26 字数 3088 阅读 367 收藏 0

  在我看来接口测试相对其他类型的测试是比较简单的。对于最常见的HTTP接口,只需要知道接口的 URL、方法、参数类型、返回值 ... 就可以对接口进行测试了。

  apifox

  如果你是入门级选手,那么apifox应该很适合你,它是一款类似postman的接口测试工具。而且功能也很强大,定位 Postman + Swagger + Mock + JMeter。你值得尝试。

1-1.png

  为什么不postman? 嗯,你说的都对!

  HttpRunner

  如果你不想用工具,也不想写代码。想更加简单高效的编写接口测试用例,那么HttpRunner2.x 就很适合你了。

  {
      "config": {
          "name": "testcase description",
          "variables": {},
          "verify": false
      },
      "teststeps": [
          {
              "name": "/api/v1/hello/",
              "request": {
                  "url": "http://127.0.0.1:8000/api/v1/hello/",
                  "method": "GET"
              },
              "validate": [
                  {"eq": ["body.code", 10200]},
                  {"eq": ["body.message", "success"]}
              ]
          }
      ]
  }

  httpRunner已经更新3.x,HtppRunner 3.x还支持写代码了,还支持接口性能测试。我知道了,谢谢你的提醒!

  Robot Framework

  Robot Framework是一款通用了的测试框架,支持各种Library,如果你对它很熟悉的话,拿来做接口自动化手到擒来!

1-2.png

  JMeter

  JMeter是用来做性能测试的,在当前大部分系统都前后端分离的情况下,服务端性能 ~= 接口性能。

  那么我把并发数设置成1,那么它就变身成为了接口自动化工具。

1-3.png

  设置成100, 它又变成了接口性能工具,在功能/性能之间来回切换的大佬。可盐可甜!

  Gauge

  Gauge是基于BDD测试框架。拿它来做接口测试,怎么说呢,不是不行。就像妹子叫一个程序员修电脑。

  ·定义行为文件(测试数据)

  login interface
  ===============
  this is login api
  test login
  ----------
  * test post "/login" api
       |username  | password | code | message |
       |----------|----------|------|---------|
       | null | |10103|username or passwrord is null|
       |  | null |10103|username or passwrord is null|
       | error |error |10104|username or password error|
       | admin |a123456 |10200|login success|

  ·执行测试

  from getgauge.python import step
  from .utils.base import Base
  import requests
  @step("test post <url> api <table>")
  def test_post_request(url, table):
      username = [str(user)
                  for user in table.get_column_values_with_name("username")]
      password = [str(pawd)
                  for pawd in table.get_column_values_with_name("password")]
      code = [int(code) for code in table.get_column_values_with_name("code")]
      message = [str(msg)
                 for msg in table.get_column_values_with_name("message")]
      for i in range(len(username)):
          data = {"username": username[i], "password": password[i]}
          r = requests.post(Base.url + url, data=data)
          result = r.json()
          print(result)
          assert result["code"] == code[i]
          assert result["message"] == message[i]

  看不懂?!没关系,妹子也看不懂你是如何把电脑修好的,总之,看上去很厉害的样子就对了。

  httpx

  如果你喜欢写代码,还有什么是比httpx库更简单好用的吗? httpx本身只是一个HTTP测试库而且,要做自动化还需要单元测试框架配合,如 pytest。

  import httpx
  def test_case():
      r = httpx.put('http://httpbin.org/put', data = {'key':'value'})
      assert r.status_code
      assert r.json() is dict()

  有人高喊:你一定是偷了Requests家东西!httpx 涨红着脸说:参考不能算偷,偷....程序员的事情,能算偷吗?接连便是高大上的话,什么"支持异步了,下一代HTTP库...", 引得众人都哄笑起来。

  还不服是吧!?就凭httpx 只要敲5个字符,而requests 要8个字符,就是httpx赢!

  MeterSphere

  metersphere是一个开源的测试平台,由商业公司维护,比起一些个人的测试平台项目,稳定性和易用性上面做的还是不错的。

1-4.png

  你完全可以基于MaterSphere做二次开发,它用的非常主流的 Java(spring) + JavaScript(vue.js) 的技术开发。

  总结

  接口测试的工具还有很多,本文相当于每种玩法都介绍了一种。不管用哪种工具,只要足够精通,那么都可以解决工作中的大部分问题。


作者:虫师    

来源:http://www.51testing.com/html/93/n-7798493.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   一、我们经常遇到的问题  在我们的测试日常中,不免会遇到网页性能感知测试的工作,比如:测试访问某个网页耗时。针对此类测试,笔者经历过两种简单的方法:测试网页使用的后端接口响应耗时等同为网页耗时;使用秒表计算网页响应耗时。  测试网页响应耗时,我们需要知道触发网页请求时,直至网页刷新、响应,整个过程到底包含了些什么。从大体来分,主要包含两部分耗时:后端接口请求响应耗时和前端页面资源加载耗时。而抛开前端页面资源加载时间,单纯将后端接口响应耗时等同为网页响应耗时是不准确的;而不清除浏览器本身资源配置和消耗,简单使用秒表计算网页响应耗时,结果是粗泛不准确的。  那么,我们应该怎么测试网页响应耗时呢...
            14 14 1223
            分享
          •   忘了自我介绍了,我是一名软件测试工程师。不知不觉,入行软件测试也有13个年头了。我是51testing09年某期毕业生,我想我那班的小伙伴们很多人如今混的一定比我好,也有很多人早已从事测试开发,对于这一行,我依然苦逼的坚持着,拿着一份不高不低的苦逼薪水,但这不是今天我想讲的重点,真的。我只是认为我的经历与诸君共享一番,即使是反面教材也是有一定意义的。  软件测试网上从以前到现在最热门的话题依然离不开待遇调查,当然这也无可厚非,下面我就用我的工作经历给大家展示一下我的薪水变迁过程,希望能帮到需要了解的人。  09年我毕业了  09年,我从51毕业,不出意外的进入了测试培训的最大出口单位,一家...
            0 0 1557
            分享
          • 最近一段时间有点忙,一直没有更新在此给大家说声抱歉哈,有些小伙伴儿私信说想要用到的工具,茶壶儿也会尽可能满足大家!今天我们要分享的工具主要有以下几款,我们来一起看一下吧?一帧秒创https://aigc.yizhentv.com/对于图画来说相比现在很多有伙伴都有了自己得心应手的工具了,主要原因有二,其一,一些设计图片的工具之前茶壶儿有过分享,其二,随着技术的不断发展,很多小伙伴都有了自己的AI工具了,国内也出现了一批像文心一言等AI产品,由于种种原因吧,一些工具还做不到大家想要的水平,不过应付一般的工作需要还是没有什么问题的,今天茶壶儿给大家也分享一款AI秒创作图神奇工具,一帧秒创,希望大家...
            0 0 1003
            分享
          • postman是测试接口经常使用的工具,它是一个很强大的工具。那么在测试中若是存在接口依赖的现象改怎么测试呢?下面就介绍下postman上一个接口返回的数据作为下一个接口的参数,以百度接口为例:1.创建一个请求接口,并在tests中添加下面两段代码并点击send//获取响应报文中的json var jsonData = JSON.parse(responseBody); //设置全局表量 pm.globals.set("access_token", jsonData.access_token);2.点击postman类似眼睛的按钮,可...
            0 0 3759
            分享
          • 前言 文章内容为本人这三年来在嵌入式软件测试(黑盒)上的一些积累吧,说起来也挺快的,毕业三年的时间就这样过去了,在两家公司工作过(现在这家是第二家),这几年的测试项目基本都是围绕着嵌入式软件,同时需要兼顾测试APP端,WEB端功能,web后端接口(postman),只是测试业务重心还是在嵌入式软件上。为什么测试的这么杂呢,其实这些全部加起来只是一个产品,只是因为目前就只有我一个测试,所以整套系统都是由我一个人来测,就拿我现在这家公司做的一个视频会议系统来说吧,整套系统包含有硬终端(linux端),app端,web端(用于后台账户/会议管理等),PC端组成。接触过嵌入式软件测试的同学应...
            11 11 1534
            分享
      • 51testing软件测试圈微信