zoukankan      html  css  js  c++  java
  • 学习笔记-Jmeter进行HTTP接口测试

    之前看到虫师在博客对Web接口测试的相关工具/技术进行了划分,主要针对HTTP/SOAP协议接口的功能测试:

      1、浏览器URL(GET请求),如: http://127.0.0.1:8000/api/user/stu_info/?stu_name=fengfeng

      2、浏览器插件:Poster、Postman 简单的接口测试

      3、独立的接口工具: Jmeter(支持SOAP)、soapUI(SOAP协议) robot framework(RequestsLibrary) 

      4、写代码(接口测试框架):urllib、urllib2、requests(urllib3) + unittest + HTMLTestRunner + PyMySQL

    对于第一种和第二种的Postman工具在之前的博客中有写过,下面将利用Jmeter对各类型的接口进行测试,本地配好了JMeter 3.0的运行环境;

    一、Jmeter 的使用步骤

    打开Jmeter 安装包,进入in 目录,双击打开"jmeter.bat",具体步骤如下:

    1、打开的Jmeter 页面中,添加线程组(右击“测试计划”-“添加”-"Threads(Users)"-“线程组”),如下图:

    2、添加Http请求(右击“线程组”-“添加”-“Sample”-“HTTP请求”),如下图:

    3、在Http请求中写入输入 服务器名称或IP、对应的端口号(默认端口号为:80)、请求路径、请求方式(GET/POST)和参数(参考接口文档),如下图(此处以GET请求方式为例):

    4、添加查看结果树(右击“线程组”-“添加”-“监听器”-“察看结果数”),如下图:

    5、运行接口、查看返回值,如下图:

    二、Http接口请求实例

    1、key-value传参的Get请求:

         在上面Jmeter使用步骤中有描述,以GET方式,参数为key-value形式传参为例进行发起请求

    2、key-value传参的Post请求

    与key-value的Get请求类似,建立一个HTTP请求,选取请求方式需切为POST,至于请求路径、请求参数根据接口文档正确填写即可,然后运行脚本,察看结果树中查看返回值

     

    3、以Json串格式传参的Post请求

    建立一个HTTP请求,选取请求方式为POST,请求参数根据接口文档以Json串格式写在Body里面,然后运行脚本,察看结果树中查看返回值

    4、需要添加Cookie的请求

    以金币充值接口(需管理员权限操作的接口)为例,建立一个HTTP请求,选取请求方式POST,请求参数根据接口文档 输入对应的请求路径及请求参数,并将HTTP请求改名为:学生金币充值

    由于此接口有权限验证,需要admin用户才可以做操作, 因此需添加 HTTP Cookie 管理器 来传递管理员用户的Cookie(如通过登录管理员用户:niuhanyang 获取的Cookie为:0dab39079367993222d1f6e567443988)

    则可添加HTTP Cookie 管理器(右击“学生金币充值”-“添加”-“配置元件”-“HTTP Cookie 管理器”)

    然后填写管理员权限用户的Cookie值,设置Cookie 的名称(即管理员的用户名:niuhanyang),值(即niuhanyang登录后得到的sign:0dab39079367993222d1f6e567443988),域(即服务器名称或IP)

    最后可以通过 察看结果数 的响应数据查看结果

    5、需要添加请求头(Headers)的请求

    以 获取所有学生信息(需要添加Header的接口)为例,建立一个HTTP请求,选取请求方式GET,请求参数根据接口文档 输入对应的请求路径及请求参数(此接口不需传参),并将HTTP请求改名为:获取所有学生信息

    然后则添加 HTTP信息头管理器(右击“获取所有学生信息”-“添加”-“配置元件”-“HTTP信息头管理器”)

     然后根据接口文档,填写需要填写的请求头,如此接口文档中写明:需要添加加header信息,key为Referer value 为http://api.xxxxx.cn/ 

    最后可以通过 察看结果数 的响应数据查看结果

    注:此文中写到的接口参考上一篇文章(学习笔记-Postman进行HTTP接口测试)中的接口文档

  • 相关阅读:
    MongoDB中_id(ObjectId)生成
    springMVC 拦截器源码解析
    初识设计模式(代理模式)
    vue VNode如何使用,是什么东西?
    AOP 怎么理解?
    Java集合框架——jdk 1.8 ArrayList 源码解析
    System.arraycopy 怎么使用的?
    Java集合框架——容器的快速报错机制 fail-fast 是什么?
    maven 如何依赖工程项目里面的 jar 包
    IDEA maven 项目如何上传到私服仓库
  • 原文地址:https://www.cnblogs.com/fenggf/p/8586275.html
Copyright © 2011-2022 走看看