python接口测试之token&session处理(十三)

python接口测试之token&session处理(十二)中我们介绍了cookie,以及session和使用postman怎么获取token这些,本小节我们来看怎么使用jmeter测试工具来进行接口的自动化测试。

下面我们使用jmeter来进行接口自动化的测试,来进行获取token和参数的传递以及调用,关于jmeter如何自动发送邮件,以及怎么和jenkins整合到一起,可以参考Jmeter&Ant构建自动化测试平台的文章,这里就不详细的再描述。启动jmeter后,我们在测试计划中创建线程组,以及在线程组中创建要添加的cookie,headers的数据,和断言,见截图:

我们来看HTTP消息头管理器,这里面就是headers部分,见截图:

见对每个接口测试用例Response Headers的检查点,见截图:

在接口测试中,某些变量是全局的,我们可以放在用户定义的变量,比如这里接口请求的url,登录的用户名和密码我们可以放在用户定义的变量,其它接口用例直接调用,见截图:

在接口用例中,每个接口用例我们都得加请求的url,实际上我们有更简单的方式,就是使用HTTP请求默认值,见截图:

查看结果树很好理解,因为我们的接口用例执行成功后,我们需要看下执行的结果是通过还是失败,这里我们添加了登录的接口用例,见login接口用例截图:

我们点击

在结果树查看接口执行的结果,见截图:

依据结果我们看到,执行成功,在这里接口用例存在一个问题,就是缺少断言,缺少断言的自动化测试用例都是无效的,所以这点切记。OK,我们进行添加断言,这里我们已ID和status为断言,见添加的断言截图:

这样接口用例就是有效的,下面我们来看在jmeter中如何获取token,我们执行用例成功后,看到返回了信息中包含了token,见登录成功后返回的详情信息:

{    "status":0, "msg":"", "data":
    {        
 "id":600192,
"name":"\u81ea\u52a8\u5316\u6d4b\u8bd5",  
"token":"ma750WfVczJOyjeo7PO1513521787088"
      }
}

获取token有二种方式,分别是:

1、使用后置处理器,结合正则表达式来获取token

2、使用后置处理器的jp@gc - JSON Path Extractor来获取token,并把获取到的token放在一个变量中

这里我们使用第二种的方式,在login的接口用例中增加后置处理器,并且获取token,见截图:

获取token成功后,下来的接口用例操作就很简单了,我们来继续添加infoGet的接口用例,见截图:

我们对infoGet的接口添加断言,断言username和status,见断言的截图:

坦白的说,使用jmeter来进行接口自动化测试是一个不错的选择,关于为什么一定要先获取token,在文章的开头我们已经解释了,在使用jmeter进行做接口的自动化测试中,数据直接都是互相定义并且调用,这样的好处是我们不需要为了接口用例而额外的创造数据。

原文发布于微信公众号 - Python自动化测试(wuya-python)

原文发表时间:2018-01-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏章鱼的慢慢技术路

Linux编程_Shell脚本练习题

23020
来自专栏Java帮帮-微信公众号-技术文章全总结

高级框架-Struts2-day01【悟空教程】

Struts2是一种基于MVC模式的轻量级Web框架,它自问世以来,就受到了广大Web开发者的关注,并广泛应用于各种企业系统的开发中。目前掌握Struts2框架...

10830
来自专栏CSDN技术头条

基于Zookeeper的分布式锁

实现分布式锁目前有三种流行方案,分别为基于数据库、Redis、Zookeeper的方案,其中前两种方案网络上有很多资料可以参考,本文不做展开。我们来看下使用Zo...

33880
来自专栏前端杂货铺

高吞吐koa日志中间件

Midlog中间件 node服务端开发中少不了日志打点,而在koa框架下的日志打点在多进程环境中日志信息往往无法对应上下文,而且在高并发下直接进行写buffer...

606100
来自专栏安恒网络空间安全讲武堂

python使用pexpect实现ftp的操作

19660
来自专栏GreenLeaves

WCF系列教程之WCF服务配置

文本参考自:http://www.cnblogs.com/wangweimutou/p/4365260.html 简介:WCF作为分布式开发的基础框架,在定义服...

23360
来自专栏代码GG之家

深入Android源码系列(二) HOOK技术大作战

漫天的标题党的口水文打赏爆表,冷落了一群默默输出高质量文章的人群。真正的技术文章能否得到认可? 本文讲解内容有 hook技术原理探究 ...

28250
来自专栏Java后端技术

一段奇妙的vim编辑器之旅

  对于Linux服务器上的操作,我们往往少不了使用vim,而有时候我对vim的使用并没有那么的熟练和深入,这周就深入的学习了vim的使用,包括入门和进阶,先分...

9230
来自专栏Java3y

看完这篇Linux基本的操作就会了

34560
来自专栏IT派

Python 的异步 IO:Asyncio 简介

所谓「异步 IO」,就是你发起一个 IO 操作,却不用等它结束,你可以继续做其他事情,当它结束时,你会得到通知。

14730

扫码关注云+社区

领取腾讯云代金券