近期项目中,进行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. Android list加载图片工具类

    总体思路 Handler + looper + message 核心类 package com.base.imagechoose.util; import android.graphics.Bitma ...

  2. JS案例练习:图片切换+切换模式

    先附图: CSS样式部分: <style> *{;} body{font-family:'Microsoft YaHei';} .menu{margin:20px auto 0; widt ...

  3. webstorm下载激活汉化

    下载 官方下载地址:https://www.jetbrains.com/webstorm/ 激活 参考http://blog.csdn.net/it_talk/article/details/5244 ...

  4. FPGA工具篇——编辑器Notepad++

    body { font-family: 微软雅黑,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLi ...

  5. C语言的一小步—————— 一些小项目及解析

    ——-------- 仅以此献给东半球第二优秀的C语言老师,黑锤李某鸽,希望总有那么一天我们的知识可以像他的丰臀一样渊博! bug跟蚊子的相似之处: 1.不知道藏在哪里. 2.不知道有多少. 3.总是 ...

  6. c++ 输入split

    日期格式为“yyyy/mm/dd”(即年/月/日)格式 scanf("%d/%d/%d", &year, &month, &day);

  7. c++ vector & 二维数组 & MessageBox

    vector: https://www.cnblogs.com/mr-wid/archive/2013/01/22/2871105.html c++ 二维数组: int **p; p = new in ...

  8. co-dialog弹出框组件-版本v2.0.1

    具体案例查看co-dialog:https://koringz.github.io/co-dialog/index.html 2.0.1版本优化项,代码压缩,修复PC和移动端自适应,修复显示弹出框浏览 ...

  9. 安装CentOS6.9虚拟机

    安装CentOS6.9 之前在学习项目时,都是用的按键好的虚拟机.这次自己也尝试搭建一下.(虽然也是google的) 首先大部分过程都是参考https://blog.csdn.net/pengpeng ...

  10. Java源码——HashMap的源码分析及原理学习记录

    学习HashMap时,需要带着这几个问题去,会有很大的收获: 一.什么是哈希表 二.HashMap实现原理 三.为何HashMap的数组长度一定是2的次幂? 四.重写equals方法需同时重写hash ...