精华内容
下载资源
问答
  • python接口测试之token&session处理

    千次阅读 2018-05-05 23:28:32
    session处理在做接口的自动化测试中,无法绕过cookie,某些时候我们需要处理,那么怎么处理?另外一个方面,什么是cookie?cookie它的工作机制是用户识别以及状态管理,网站为了管理用户的状态会通过web的浏览器,把...

    python接口测试之token&session处理

    在做接口的自动化测试中,无法绕过cookie,某些时候我们需要处理,那么怎么处理?另外一个方面,什么是cookie?cookie它的工作机制是用户识别以及状态管理,网站为了管理用户的状态会通过web的浏览器,把一些数据临时写入用户的计算机内,用户再次访问web站点的时候,可通过通信方式取回之前存放的cookie,调用cookie时,检验cookie的时效。

    session是存储在服务器端的,使用session来保持会话,在实际的产品测试中,特别是移动互联网的产品是,大多数是token,那么token我们简单的可以理解是就是令牌,原理上是通过session来实现的,也就是说,在登录的时候,是客户端请求服务器的一个过程,登录成功后,服务器端会生成一个随机的字符串也就是说是token,并且把token放在session中,然后把token返回给客户端,客户端带着这个token,就可以对系统的业务进行操作。token每次登录后,返回是都是不同的那么也就是说,在产品的接口自动化测试中,如果要对系统进行接口的自动化测试,那么首先需要获取token,获取token的整个思路为:

    A.先进行登录

    B.登录成功后

    C.获取token

    D.把获取的token当作下一个接口的请求参数

    下面通过工具,代码的方式分别来讲下如何获取token,以及对token的处理,工具我们这里使用大家经常时候并且的postman,jmeter,代码使用python,在这里我们一次性的解决token的获取和处理。我们先来看我们需要处理的程序究竟是怎么样的,见登录的请求过程,见截图:

    见登录的响应正文,返回了token,见截图:

    我们再见下一个接口,它的参数必须得带token,并且这个token是登录成功后返回的token,见截图:

    见该接口的请求正文,见截图:

    通过如上截图我们知道,它的请求正文是token,并且这个token与登录成功后返回的token必须是一一对应的。如上的接口测试大概步骤为:

    1、调用login的接口,login的接口调用成功后,返回token

    2、登录成功后的请求都必须带这个token,否则就会出现token无效请求出现401无权限的操作,那么如何获取token,让token成一个变量,供后面的接口来进行调用了?这就是下面要进行说的。

    我们首先在postman中完成login的接口,见截图:

    请求参数见截图:

    点击send,见请求成功后返回的json字符串,见截图:

    现在我们来进行操作获取token和对该接口的测试用例进行断言,这些操作都是在Tests中进行的,见Tests的js代码:

    注释:在如上的代码中,我们对返回的json字符串进行了解析,然后把获取的token放在了token的变量中。同时也对login的接口做了断言,执行成功后,见断言的结果,见截图:

    如果断言失败,也会提示的,这里不在详细的演示。下面我们来进行另外一个接口,也就是infoGet的接口,见该接口的请求路由,和请求参数:

    我们看到,它的请求参数是token,而这个token就是每次登录成功后的token,我们点击send看下,看执行的结果,见截图:

    出现502,验证信息已失效,为什么会出现这样的结果了,这个很好理解,这是因为,我们在执行infoGet接口的时候,它的token与我们登录成功后的token不一致,所以就是无效,我们在login的接口中,对响应正文中获取了token,并且把该token放在了变量token,那么就需要在infoGet的接口中,我们直接调用这个变量就可以了,调用的方式为,见如下的结果:

    我们把login和infoGet的接口添加到一个collection中(关于postman的collection不知道的,可以看我的博客python接口测试之postman),该cllection的名称是blog,我们执行collecion,见截图:

    点击run,来进行执行,见执行后的结果,见截图:

    见ingoGet的请求正文截图:

    再见infoGet接口的响应正文内容,见截图:

    为了让测试具备完整性,我们给接口infoGet增加断言,见增加的断言,见截图:

    再次对collection进行执行,见执行的结果:


    展开全文
  • 在做接口的自动化测试中,无法绕过cookie,某些时候我们需要处理,那么怎么处理?另外一个方面,什么是cookie?cookie它的工作机制是用户识别以及状态管理,网站为了管理用户的状态会通过web的浏览器,把一些数据临时...
    17245580c1d97ecdb2735db6a0da9ac4.png

    在做接口的自动化测试中,无法绕过cookie,某些时候我们需要处理,那么怎么处理?另外一个方面,什么是cookie?cookie它的工作机制是用户识别以及状态管理,网站为了管理用户的状态会通过web的浏览器,把一些数据临时写入用户的计算机内,用户再次访问web站点的时候,可通过通信方式取回之前存放的cookie,调用cookie时,检验cookie的时效。

    session是存储在服务器端的,使用session来保持会话,在实际的产品测试中,特别是移动互联网的产品是,大多数是token,那么token我们简单的可以理解是就是令牌,原理上是通过session来实现的,也就是说,在登录的时候,是客户端请求服务器的一个过程,登录成功后,服务器端会生成一个随机的字符串也就是说是token,并且把token放在session中,然后把token返回给客户端,客户端带着这个token,就可以对系统的业务进行操作。token每次登录后,返回是都是不同的那么也就是说,在产品的接口自动化测试中,如果要对系统进行接口的自动化测试,那么首先需要获取token,获取token的整个思路为:

    A.先进行登录

    B.登录成功后

    C.获取token

    D.把获取的token当作下一个接口的请求参数

    下面通过工具,代码的方式分别来讲下如何获取token,以及对token的处理,工具我们这里使用大家经常时候并且的postman,jmeter,代码使用python,在这里我们一次性的解决token的获取和处理。我们先来看我们需要处理的程序究竟是怎么样的,见登录的请求过程,见截图:

    aa1060e8dab5ff993273b3b50db435c7.png

    见登录的响应正文,返回了token,见截图:

    d502298bc3c0cd82dd7c80db58fc5907.png

    我们再见下一个接口,它的参数必须得带token,并且这个token是登录成功后返回的token,见截图:

    d4cef51d0035bae856cdfb7eba6c65cd.png

    见该接口的请求正文,见截图:

    4affcef6183bcc8434e0d2106744858b.png

    通过如上截图我们知道,它的请求正文是token,并且这个token与登录成功后返回的token必须是一一对应的。如上的接口测试大概步骤为:

    1、调用login的接口,login的接口调用成功后,返回token

    2、登录成功后的请求都必须带这个token,否则就会出现token无效请求出现401无权限的操作,那么如何获取token,让token成一个变量,供后面的接口来进行调用了?这就是下面要进行说的。

    我们首先在postman中完成login的接口,见截图:

    6a465d993a788f519f2ff826193cf932.png

    请求参数见截图:

    ea525fd412d59c09a705774afc27404f.png

    点击send,见请求成功后返回的json字符串,见截图:

    88cee84f850d231e80e1b2d4dc9a40c6.png

    现在我们来进行操作获取token和对该接口的测试用例进行断言,这些操作都是在Tests中进行的,见Tests的js代码:

    c1e77039cffca86c69bb880bb4fab46c.png

    注释:在如上的代码中,我们对返回的json字符串进行了解析,然后把获取的token放在了token的变量中。同时也对login的接口做了断言,执行成功后,见断言的结果,见截图:

    85ec7e111382e1bdb1554680db24e09b.png

    如果断言失败,也会提示的,这里不在详细的演示。下面我们来进行另外一个接口,也就是infoGet的接口,见该接口的请求路由,和请求参数:

    33ef9895647de507b3bf825cf2f40061.png

    我们看到,它的请求参数是token,而这个token就是每次登录成功后的token,我们点击send看下,看执行的结果,见截图:

    71031dc292c0d443d9f100c6ec05eb90.png

    出现502,验证信息已失效,为什么会出现这样的结果了,这个很好理解,这是因为,我们在执行infoGet接口的时候,它的token与我们登录成功后的token不一致,所以就是无效,我们在login的接口中,对响应正文中获取了token,并且把该token放在了变量token,那么就需要在infoGet的接口中,我们直接调用这个变量就可以了,调用的方式为,见如下的结果:

    1bbe4d56766346460e6c8582e64942a4.png

    我们把login和infoGet的接口添加到一个collection中(关于postman的collection不知道的,可以看我的博客python接口测试之postman),该cllection的名称是blog,我们执行collecion,见截图:

    58299e2ccb225ac98d22d040af7d0aa1.png

    点击run,来进行执行,见执行后的结果,见截图:

    1bfb02d40c3e369080fdb55cdc8e7348.png

    见ingoGet的请求正文截图:

    fddd7089e0eaafc5e181225d5eab14d3.png

    再见infoGet接口的响应正文内容,见截图:

    78daaac41e17e6627a0c6f397c8fe80e.png

    为了让测试具备完整性,我们给接口infoGet增加断言,见增加的断言,见截图:

    fd9110238c953830cfb2b830f116f2ee.png

    再次对collection进行执行,见执行的结果:

    3176e2605567d574123898515026faa5.png

    接下来会继续更新在jmeter中如何获取token以及处理,和使用python语言如何获取token并且进行处理。如您对内容感兴趣,请关注我们!

    展开全文
  • 在之前我们介绍了cookie,以及session和使用postman怎么获取token这些,本小节我们来看怎么使用jmeter测试工具来进行接口的自动化测试。下面我们使用jmeter来进行接口自动化的测试,来进行获取token和参数的传递以及...
    c7400c0d0e2bf28cd1c2c5d602cb2643.png

    在之前我们介绍了cookie,以及session和使用postman怎么获取token这些,本小节我们来看怎么使用jmeter测试工具来进行接口的自动化测试。

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

    ae9ecba127a7d4094399ba5df97c4dd3.png

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

    7cd72aa97955866c3d4b2abdfd3a8080.png

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

    509b681df422a746670a210784f3963d.png

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

    b2052e2546b8a0f5230797279ae6f01a.png

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

    17042ef3b8bcad46f7bc66f4a64c2f64.png

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

    8310ba073fbc0bfa1adb73cc6a3e73f0.png

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

    358467b06ca7f299a695d8e514a9e9fd.png

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

    2ecddb7a8fce553618bd33259a5e00ac.png
    7827923a4e1e3b1a628877df33ed09f5.png

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

    { "status":0, "msg":

    展开全文
  • 原标题:python接口测试之token&session处理(十二)在做接口的自动化测试中,无法绕过cookie,某些时候我们需要处理,那么怎么处理?另外一个方面,什么是cookie?cookie它的工作机制是用户识别以及状态管理,网站...

    原标题:python接口测试之token&session处理(十二)

    在做接口的自动化测试中,无法绕过cookie,某些时候我们需要处理,那么怎么处理?另外一个方面,什么是cookie?cookie它的工作机制是用户识别以及状态管理,网站为了管理用户的状态会通过web的浏览器,把一些数据临时写入用户的计算机内,用户再次访问web站点的时候,可通过通信方式取回之前存放的cookie,调用cookie时,检验cookie的时效。

    session是存储在服务器端的,使用session来保持会话,在实际的产品测试中,特别是移动互联网的产品是,大多数是token,那么token我们简单的可以理解是就是令牌,原理上是通过session来实现的,也就是说,在登录的时候,是客户端请求服务器的一个过程,登录成功后,服务器端会生成一个随机的字符串也就是说是token,并且把token放在session中,然后把token返回给客户端,客户端带着这个token,就可以对系统的业务进行操作。token每次登录后,返回是都是不同的那么也就是说,在产品的接口自动化测试中,如果要对系统进行接口的自动化测试,那么首先需要获取token,获取token的整个思路为:

    A.先进行登录

    B.登录成功后

    C.获取token

    D.把获取的token当作下一个接口的请求参数

    下面通过工具,代码的方式分别来讲下如何获取token,以及对token的处理,工具我们这里使用大家经常时候并且的postman,jmeter,代码使用python,在这里我们一次性的解决token的获取和处理。我们先来看我们需要处理的程序究竟是怎么样的,见登录的请求过程,见截图:

    91351f598cdc4967a23afdeb33beab51.png

    见登录的响应正文,返回了token,见截图:

    643f5994a0e84763a521c0cfc2e82430.png

    我们再见下一个接口,它的参数必须得带token,并且这个token是登录成功后返回的token,见截图:

    825d6b33f7bc40f68a1b3c062e828a30.png

    见该接口的请求正文,见截图:

    f09421ec95ca4baa8b19af79a73c2c2f.png

    通过如上截图我们知道,它的请求正文是token,并且这个token与登录成功后返回的token必须是一一对应的。如上的接口测试大概步骤为:

    1、调用login的接口,login的接口调用成功后,返回token

    2、登录成功后的请求都必须带这个token,否则就会出现token无效请求出现401无权限的操作,那么如何获取token,让token成一个变量,供后面的接口来进行调用了?这就是下面要进行说的。

    我们首先在postman中完成login的接口,见截图:

    2c3c9036df634f0380df62fefea68083.png

    请求参数见截图:

    21abb8d982014a0a8074556bdceae7bd.png

    点击send,见请求成功后返回的json字符串,见截图:

    132b8189903d4eb7a434ea4ca7762fd0.png

    现在我们来进行操作获取token和对该接口的测试用例进行断言,这些操作都是在Tests中进行的,见Tests的js代码:

    6078383a7ea64a79bc6c7b68af235dfd.jpeg

    注释:在如上的代码中,我们对返回的json字符串进行了解析,然后把获取的token放在了token的变量中。同时也对login的接口做了断言,执行成功后,见断言的结果,见截图:

    b9ab83449ee845a18f2f10c7a199125f.png

    如果断言失败,也会提示的,这里不在详细的演示。下面我们来进行另外一个接口,也就是infoGet的接口,见该接口的请求路由,和请求参数:

    2d774dc57d184571b893d09ca7c0e798.png

    我们看到,它的请求参数是token,而这个token就是每次登录成功后的token,我们点击send看下,看执行的结果,见截图:

    c35b1ed4f2ea41728a5fc2d124893358.png

    出现502,验证信息已失效,为什么会出现这样的结果了,这个很好理解,这是因为,我们在执行infoGet接口的时候,它的token与我们登录成功后的token不一致,所以就是无效,我们在login的接口中,对响应正文中获取了token,并且把该token放在了变量token,那么就需要在infoGet的接口中,我们直接调用这个变量就可以了,调用的方式为,见如下的结果:

    b22abd66ddf941baa1465bdaae409ed7.png

    我们把login和infoGet的接口添加到一个collection中(关于postman的collection不知道的,可以看我的博客python接口测试之postman),该cllection的名称是blog,我们执行collecion,见截图:

    3899c698ab7641a8a2cef724216fa439.png

    点击run,来进行执行,见执行后的结果,见截图:

    7fc986da77994dc987693adfa2d85c3d.png

    见ingoGet的请求正文截图:

    6a5b0f674e0a45429a4a6c0dd728eda0.png

    再见infoGet接口的响应正文内容,见截图:

    299c39fba4d940309e5ece52a92385f6.jpeg

    为了让测试具备完整性,我们给接口infoGet增加断言,见增加的断言,见截图:

    9a9d25a50e984106905c567799e6998a.png

    再次对collection进行执行,见执行的结果:

    30cd469da3ef405e9c5a510e204bc233.png

    接下来会继续更新在jmeter中如何获取token以及处理,和使用python语言如何获取token并且进行处理。如您对我写的内容感兴趣,可扫描如下的二维码关注我的公众号,谢谢!!!返回搜狐,查看更多

    责任编辑:

    展开全文
  • 在做接口的自动化测试中,无法绕过cookie,某些时候我们需要处理,那么怎么处理?另外一个方面,什么是cookie?cookie它的工作机制是用户识别以及状态管理,网站为了管理用户的状态会通过web的浏览器,把一些数据临时...
  •  在做接口的自动化测试中,无法绕过cookie,某些时候我们需要处理,那么怎么处理?另外一个方面,什么是cookie? cookie它的工作机制是用户识别以及状态管理,网站为了管理用户的状态会通过web的浏览器,把一些...
  • 在做接口的自动化测试中,无法绕过cookie,某些时候我们需要处理,那么怎么处理?另外一个方面,什么是cookie?cookie它的工作机制是用户识别以及状态管理,网站为了管理用户的状态会通过web的浏览器,把一些数据临时...
  • 概述: 1.1 cookie 在做接口的自动化测试中,无法绕过cookie,某些时候我们需要处理,那么怎么处理?另外一个方面,什么是cookie?cookie它的工作机制是用户识别以及状态管理,网站为了管理用户的状态会通过web的...
  • ),视图(请求,响应,cookie,session。。),模板(验证码,反向解析。。。),还有一些常用的,静态文件处理,中间件,上传图片,全文检索等等,最后是部署环境(wsgi,nginx)前景:django自带的数据库是sqlite3,这是...
  • 本章主要用一个简单的发布会签到系统来介绍get、post两种请求方式,以及cookies和session两种登录机制,并且还介绍了Django的认证系统,我们怎么应用Django自带的认证系统去处理登录网页。 登录功能 为了更好的去...
  • selenium---cookie处理

    2020-09-17 12:41:46
    在做web测试过程中,常常会遇到登录过程中需要滑动来进行登录,通常滑动处理起来比较麻烦,那么我们可以通过跳过这个滑动,简单方法,让开发在测试版本中屏蔽滑动模块,如果开发不愿意屏蔽的时候,我们应该怎么操作...
  • 今天接触SSM框架的第四天,后台Mybatis生成dao、entity和mapper后,测试成功,能够正常读写数据库了,但是,在加入页面之后,通过controller不能实现页面的跳转,特求助~~ 访问情况: ![图片说明]...
  • 集群部署,Spring Security 要如何处理 session 共享? csrf-1 松哥手把手教你在 SpringBoot 中防御 CSRF 攻击!so easy! csrf-2 松哥手把手教你在 SpringBoot 中防御 CSRF 攻击!so easy! csrf-3 松哥...
  • 网上一搜,不知道怎么的就找了一个进程守护的软件,别人提供的源码,好像是在pudn下的,一测试可以运行,就是觉得不太适合自己的操作习惯。于是就开始改造了。牺牲了一周的业余时间,终于完成,在这分享一下,如果有...
  • springmybatis

    2015-09-05 06:54:28
    3. 创建mysql 测试数据库和用户表,注意,这里采用的是 utf-8 编码 创建用户表,并插入一条测试数据 程序代码 程序代码 Create TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `userName` varchar(50) ...
  • java 面试题 总结

    2009-09-16 08:45:34
     GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收...
  • swoft 2.0 开发意见收集

    2021-01-12 15:26:50
    </li><li>提供测试辅助工具库 更方便编写单元测试</li><li>异常处理优化</li></ul> <p><strong>新增的功能:</strong></p> <ul><li>进程池的封装</li><li>迁移脚本</li></ul>该提问来源于开源项目:...
  • 4.4.0 什么是序列怎么序列,为什么序列,反序列会遇到什么问题,如何解决。 4.4.1 java8的新特性。 JVM 4.4.2 什么情况下会发生栈内存溢出。 4.4.3 JVM的内存结构,Eden和Survivor比例。 4.4.4 JVM...
  • asp.net知识库

    2015-06-18 08:45:45
    怎么在ASP.NET 2.0中使用Membership asp.net 2.0-实现数据访问(1) ASP.NET 2.0 新特性 .NET 2.0里使用强类型数据创建多层应用 在MastPage中引用脚本资源 2.0正式版中callback的一些变化+使用示例(ASP.NET 2.0)...
  • 37.5.1自动令牌包含 271 37.5.2解析CsrfToken 272 第七部分 Spring数据集成 273 38. Spring Data&Spring安全配置 273 39. @Query中的安全表达式 273 第八部分 附录 274 40.安全数据库模式 274 40.1用户模式 274 ...
  • wxPython学习手册

    热门讨论 2014-04-19 08:01:58
    7.4.5 如果我想要下拉形式的选择该怎么做? 213 7.4.6 我能够将文本域与列表合并在一起吗? 214 7.5 本章小结 216 8、把窗口部件放入框架中 218 8.1 框架的寿命 218 8.1.1 如何创建一个框架? 218 创建一个简单的...
  • 纳税服务系统七(投诉管理模块)【显示投诉信息、处理回复、我要投诉、Quartz自动受理、统计图FusionCharts】 纳税服务系统总结 :tv:Redis 从零单排学Redis【青铜】 从零单排学Redis【白银】 从零单排学Redis...
  • 5.1.1 Session Area 177 5.1.2 Private SQL Area 177 5.2 SQL语句的执行过程 179 5.2.1 Parent Cursor和Child Cursor 180 5.2.2 V$SQL和V$SQLAREA的区别 182 5.2.3 与Cursor有关的参数 182 5.3 执行...
  • 今天天气怎么样 今天温度怎么样 ****2019/5/18**** 由于之前代码api过时,已更新最新代码于:dssm_rnn.py 数据处理代码data_input.py 和数据data 已经更新,由于使用了rnn,所以输入非bag of words方式。 来源:...
  • 可靠的Windows版Redis-教你怎么解决64位Windows版Redis狂占C盘的问题 Oracle中 SQL 执行太慢的元凶: OR Windows下载安装JDK【废弃】 小伙伴书三生 2014年 排斥所有液体的新型超疏水纳米材料 20纳米DDR4内存 ...
  • Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的诊断和测试以及恢复系统功能的工具。小编的确一直都想把这方面的命令做个总结,这次辛苦老范给我们整理了这份实用的秘笈。 ...

空空如也

空空如也

1 2
收藏数 26
精华内容 10
关键字:

自动化测试怎么处理session