近期项目中,进行http协议的接口性能测试过程中,需要进行登录接口的摘要认证,分享一下测试经验。

测试准备

测试工具:LoadRunner11

测试类型:接口测试--某系统登录接口

步骤

根据系统接口api进行报文的拼装,api示例如下:

 认证方式digest auth:
Request:
ContentType:application/json;charset=utf8
Content-Length:xxxx
GET /login HTTP/1.1
APP-Version: Platform-version
Parameter:{}
APP-Version: XX版本

主要使用web_set_user("{username}", "{password}", "{host}:{hostport}")函数进行摘要认证,拼装后的LR报文:

 Action()
{
//设置服务器地址
lr_save_string("服务器地址","host");
//设置服务器端口号
lr_save_string("端口号","hostport");
//设置用户名
lr_save_string("用户名","username");
//设置密码
lr_save_string("密码","password"); web_add_header("Content-Type","application/json;charset=utf-8");
web_set_user("{username}", "{password}", "{host}:{hostport}");
web_add_header("User-Agent","baoxinshuanglu/0.2.10(iPhone; iOS 10.3.1; Scale/2.00)");
web_add_header("Content-Length","xxx"); web_custom_request("login", "Method=POST",
"URL=http://{host}:{hostport}/login",
"Resource=0","Referer=",
"Mode=HTTP",
"Body={}",
LAST ); return 0;
}

认证成功后,服务器返回如下:

 HTTP/1.1 200 \r\n
Action.c(18): X-Content-Type-Options: nosniff\r\n
Action.c(18): X-XSS-Protection: 1; mode=block\r\n
Action.c(18): Cache-Control: no-cache, no-store, max-age=0, must-revalidate\r\n
Action.c(18): Pragma: no-cache\r\n
Action.c(18): Expires: 0\r\n
Action.c(18): X-Frame-Options: DENY\r\n
Action.c(18): Set-Cookie: JSESSIONID=xxxxx; Path=/; xxx\r\n
Action.c(18): X-Application-Context: application:xxxx\r\n
Action.c(18): Content-Type: application/json;charset=UTF-8\r\n
Action.c(18): Transfer-Encoding: chunked\r\n
Action.c(18): Date: Wed, 11 Oct 2017 05:43:26 GMT\r\n
Action.c(18): \r\n
Action.c(18): t=909ms: 5-byte chunked response overhead for "http://xxx/login" (RelFrameId=1, Internal ID=1)
Action.c(18): 29f\r\n
Action.c(18): t=917ms: 7-byte chunked response overhead for "http://xxx/login" (RelFrameId=1, Internal ID=1)
Action.c(18): \r\n
Action.c(18): 0\r\n
Action.c(18): \r\n
Action.c(18): t=935ms: 671-byte chunked response body for "http://xxx/login" (RelFrameId=1, Internal ID=1)
Action.c(18): {"id":xx,"name":"xx","gender":x,"id_card":"xx","tel_phon
Action.c(18): e":"xxxxx","certification":"xxxxx","work_number":"","mail":null
Action.c(18): ,"area":"xxx","register_type":x,"unit_id":xxx,"unit_type":1,"unit_name":"xxx
Action.c(18): xxx\xB8","corporate_code":"xxx","sub_corporate_code":"xxxx","sub_type":null,
Action.c(18): "status":x,"create_person":x,"unit_level":x,"create_time":"xxxx","password"
Action.c(18): :"xxx","roles":[{"id":x,"name":"xxxx"}],
Action.c(18): "authorityList":["app_log_upload","org_view","product_view","task_execute","task_template_
Action.c(18): view","task_view","template_view","user_view"]}

  以上就是一个简单的摘要认证的过程,如有错误请大神指正!

【LoadRunner】对摘要认证的处理的更多相关文章

  1. 前端学HTTP之摘要认证

    前面的话 上一篇介绍的基本认证便捷灵活,但极不安全.用户名和密码都是以明文形式传送的,也没有采取任何措施防止对报文的篡改.安全使用基本认证的唯一方式就是将其与SSL配合使用 摘要认证与基本认证兼容,但 ...

  2. PHP 模拟 HTTP 摘要认证(Digest )

    <?php header("Content-type: text/html; charset=utf-8"); /*php摘要认证*/ $users = ['dee'=> ...

  3. [转]ASP.NET Web API(三):安全验证之使用摘要认证(digest authentication)

    本文转自:http://www.cnblogs.com/parry/p/ASPNET_MVC_Web_API_digest_authentication.html 在前一篇文章中,主要讨论了使用HTT ...

  4. ASP.NET Web API(三):安全验证之使用摘要认证(digest authentication)

    在前一篇文章中,主要讨论了使用HTTP基本认证的方法,因为HTTP基本认证的方式决定了它在安全性方面存在很大的问题,所以接下来看看另一种验证的方式:digest authentication,即摘要认 ...

  5. HTTP协议学习---(三)摘要认证

    Http 摘要认证 这个认证可以看做是基本认证的增强版本,使用随机数+密码进行md5,防止通过直接的分析密码MD5防止破解. 摘要访问认证最初由 RFC 2069 (HTTP的一个扩展:摘要访问认证) ...

  6. 详解HTTP中的摘要认证机制(转)

    Basic认证方式是存在很多缺陷的,具体表现如下: 1,  Basic认证会通过网络发送用户名和密码,并且是以base64的方式对用户名和密码进行简单的编码后发送的,而base64编码本身非常容易被解 ...

  7. Tomcat - 设置 HTTP 摘要认证

    在 Tomcat 中设置 HTTP 摘要认证的示例 在 Tomcat 中设置摘要认证与设置基本认证几乎一样,差别在于配置 web.xml 时,<login-config/> 元素在指定认证 ...

  8. HTTP - 摘要认证

    基本认证便捷灵活,但极不安全.用户名和密码都是以明文形式传送的,也没有采取任何措施防止对报文的篡改.安全使用基本认证的唯一方式就是将其与 SSL 配合使用. 摘要认证是另一种 HTTP 认证协议,它与 ...

  9. 安全验证之使用摘要认证(digest authentication)

    安全验证之使用摘要认证(digest authentication) 在前一篇文章中,主要讨论了使用HTTP基本认证的方法,因为HTTP基本认证的方式决定了它在安全性方面存在很大的问题,所以接下来看看 ...

随机推荐

  1. HDU 2191 悼念汶川地震(多重背包)

    思路: 多重背包转成01背包,怎么转?把一种大米看成一堆单个的物品,每件物品要么装入,要么不装.复杂度比01背包要大.时间复杂度为O(vns)(这里S是所有物品的数量s之和).这个做法太粗糙了,但就是 ...

  2. 小图示优化 - ASP.NET Sprite and Image Optimization (Web Form)

    小图示优化 - ASP.NET Sprite and Image Optimization (Web Form) 透过 NuGet安装下面的套件,可以将您的小图示(icon)合并成一张图 透过 CSS ...

  3. java Vamei快速教程14 异常处理

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 程序很难做到完美,不免有各种各样的异常.比如程序本身有bug,比如程序打印时打印机 ...

  4. JavaScript and Ruby in ABAP

    Netweaver里有个mini JavaScript engine CL_JAVA_SCRIPT, 对于Js code的编译和执行都是用system call完成. 只能当玩具用:report SJ ...

  5. python request下载文件时,显示进度以及网速

    import requests import time def downloadFile(name, url): headers = {'Proxy-Connection':'keep-alive'} ...

  6. 在ListBox控件间交换数据

    实现效果: 知识运用: ListBox控件的SelectedItem属性 //获取或设置ListBox控件中当前选定的数据项 public Object SelectedItem{ get;set; ...

  7. Python实现注册和登录

    一.注册账号需要实现的功能 1.输入:用户名,密码,密码确认 2.限制1:输入的账号和密码不能为空 3.限制2:两次输入密码必须一致 4.限制3:用户名不能重复 5.限制4:错误次数为4次 6.用字典 ...

  8. 通过Tcode查找Badi或者客户出口

    https://wiki.scn.sap.com/wiki/display/ABAP/Code+To+Find+BAdi Created by Naresh Reddy K, last modifie ...

  9. celery:Unrecoverable error: AttributeError("'unicode' object has no attribute 'iteritems')

    环境描述 python2+django1.9下使用celery异步处理耗时请求. celery使用的是celery-with-redis这个第三方库,版本号为3.0. pip install cele ...

  10. asp.net 中 UpdataPanel 的使用注意点

    1. 在UpdataPanel 前必须加上asp:ScriptManager的控件,保证页面能够正常显示