作者:大虫

本文介绍 Jmeter 工具的 http 接口 自动化测试 实战!

为了通用性,就拿知乎 网站作为实战例子吧!

必备技能:http接口基础知识、抓包,本文不做详细介绍,不会的可以先百度恶补!

首先,我们把 知乎登录的包抓下来:

我们抓一下 获取

Jmeter 对应脚本如下:

获取发现栏目脚本:

使用正则表达提取器,提取栏目内容(what?不会正则表达式?找百度)

使用 foreach 控制器将提取结果合并到一个字符串

打印结果:

运行结果:

在进行http 接口测试的时候,通常需要注意一下几点:

  1. cookie的处理,正常流程,可以用 HTTP Cookie 管理器 管理器操作!
  2. 特殊流程,如果需要自定义cookie ,可以通过 HTTP信息头管理器 里面添加cookie 字段来处理!
  3. Content-Type 非常重要,如果调用接口报错,排查其他没有问题的情况下,十有八九就是这个Content-Type 格式不对造成的!
  4. 在进行性能测试时,http接口的超时时间一定要设置一个默认值,不然在Jmeter进行分布式测试时,远程server端经常无法关闭,需要手动重启,当时为了这个还写了一个远程重启Jmeter server 的软件,糗大了!
  5. 利用Jmeter 进行接口自动化测试时,可以利用Beanshell 处理数据、业务规则校验,使用Jdbc 请求 和 正则表达式来提取数据库数据和网页数据,从而进行自动化流程和数据核对!
  6. 更高级的方法,可以将Jmeter 布置到 服务器上,然后通过Jenkins 来进行调用,还可以自己写一些文件插件(Excel ),生成比对结果!

示例脚本下载地址:http://files.cnblogs.com/files/artoftest/3.zip

下一篇我们介绍 结合 http请求、beanshell、jdbc请求、正则表达式提取器,来实现自动化数据流程和数据核对,感兴趣的朋友可以关注,谢谢!

【三】Jmeter接口自动化测试系列之Http接口自动化实战的更多相关文章

  1. 【二】Jmeter接口自动化测试系列之函数使用及扩展

    上一篇文章我们了解了Jmeter的参数化的集中方法,虽然方法不是很多,但已经足够使用! 本篇文章,介绍一下Jmeter自带函数的使用和 函数扩展,来满足测试工作中的各种需求! Jmeter自带函数 点 ...

  2. 【一】Jmeter接口自动化测试系列之参数化方法

    Jmeter作为虽然作为一款和LoadRunner相媲美的性能测试工具,但参数化功能实在不咋地,这里我大概总结了一下Jmeter的参数化方法! 至于参数化的用途,我这里就不多说了,做测试的都明白吧!本 ...

  3. Jmeter接口自动化测试系列之函数使用及扩展

    介绍一下Jmeter自带函数的使用和 函数扩展,来满足测试工作中的各种需求! Jmeter自带函数 点击函数帮助助手图标,弹出函数助手框,可以选择各种各样的函数 举例: _Random 获取随机数,可 ...

  4. 接口自动化测试持续集成--Soapui接口功能测试参数化

    按照自动化测试分层实现的原理,每一层的脚本实现都要进行参数化,自动化的目标就是要实现脚本代码与测试数据分离. 当测试数据进行调整的时候不会对脚本的实现带来震荡,从而提高脚本的稳定性与灵活度,降低脚本的 ...

  5. 接口自动化测试持续集成--Soapui接口功能测试断言

    断言也就是判断实际结果与预期结果是否相等,如果相等测试通过,否则测试失败,自动化测试不管是UI,Services还有unit都需要做断言. 一.添加断言步骤的组件 二.设置断言 设置常用断言的三种方式 ...

  6. 接口自动化测试持续集成--Soapui接口功能测试持续集成

    Soapui接口功能测试持续集成,需要先安装好maven和jenkins,maven和jenkins安装和系统环境配置比较简单,在这里不做叙述.   1.Soapui保存的工程文件 soapui工程保 ...

  7. 接口自动化测试持续集成--Soapui接口功能测试数据传递

    做接口测试经常会遇到如下两种情况需要处理数据传递 接口间的数据依赖,A接口请求的参数需要用到B接口的返回值 接口请求通常要用到鉴权的接口获取Token,Token通常会跟其他接口构成一对多的关系,这种 ...

  8. 自动化测试系列:Selenium UI自动化解决iframe定位问题

      更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/6735116.html 一个阴雨霏霏 ...

  9. Appium python自动化测试系列之滑动函数封装实战(八)

    8.1 什么是函数的封装 教科书上函数的封装太官方,我们这里暂且将函数的封装就是为了偷懒把一些有共性的功能或者一些经常用的功能以及模块放在一起,方便我们以后再其他地方调用.这个只是个人的理解所以大家懂 ...

随机推荐

  1. MyBatis原理,Spring、SpringBoot整合MyBatis

    1. MyBatis概述 MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可 ...

  2. pip安装任何包都出现问题

    <!DOCTYPE html> { margin: 0; padding: 0; } body { background: url(images/body_bg.png) repeat-x ...

  3. 小部分安卓手机 reload 等方法不执行

    自己解析 url 来赋值刷新页面  方法如下:// location.href function updateUrl(url, key) {     var key = (key || 't') + ...

  4. 2018APIO 进京赶考

    先见识了一下CTSC的操作...涨了见识... 打铁匠x1 见识了个全英文的ppt,各种讲课其实真的讲的很好,只是逻辑性太强反而让完全不会的同学有些尴尬... linux真的令人窒息...GUIDE用 ...

  5. Fastjson <= 1.2.47 远程命令执行漏洞

    一.漏洞利用过程 查看java版本:java -version jdk版本大1.8 openjdk versin "1.8.0_222" 下载漏洞利用文件:git clone ht ...

  6. KiCAD批量修改丝印大小

    KiCAD批量修改丝印大小 1.编辑->编辑文本与图片属性 2.范围 选择封装参考,活动 首选选择 “设定为指定值”,然后选择要修改的层,输入想要修改的参数 注意:文本高度与文本宽度比例要适中, ...

  7. 73. PrintStream(打印流)

    PrintStream(打印流)   打印流可以打印任意类型的数据,而且打印前都会把数据转换成字符串再进行打印(就是把数据存入硬盘中) 编码与解码图例:下面我们来看看一个简单的字节输出流 public ...

  8. flexbox布局一

    flexbox布局是一种新的css布局,flex是flexible的简写,所以flexbox就可以理解为可伸缩布局.而可伸缩性也是flexbox布局的亮点,至于如何可伸缩,看完下面的介绍大家应该就会有 ...

  9. 读取Properties

    package com.infotech.common.util; import java.io.FileNotFoundException; import java.io.IOException; ...

  10. layer.msg的使用

    源码: layer.msg('只想弱弱提示'); layer.msg('表情提示', {icon: 6}); layer.msg('关闭后想做些什么呢', function(){ //自动执行这里面的 ...