近期项目中,进行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. WebClient实现文件下载详解(二)

    .Net2.0中新增了很多组件,WebClient就是其中一个,功能也很强大,今天拿WebClient做了一个小实验,只用到了一些很简单的功能就可以实现以前不好实现的功能,很方便. 简单介绍一下Web ...

  2. c++树的表示方法

    c++树的节点的表示方法: typedef struct Node *Tree; struct Node { int data; Node *left; Node *right; int flag; ...

  3. 弹出页面第一次加载可以生成table和方法的绑定,第二次点击进来不能生成table和方法的帮定

    问题原因: 弹出页面的写法是每次点击都会在原有页面基础之上新添加一个将其覆盖,原有页面不关闭.我用的生成table和点击事件的绑定是id选择器.页面中只绑定第一次的页面,第二次的页面作用不上. 解决: ...

  4. Mybatis- 配置

    主配置文件 properties 第一种 <properties> <property name="jdbc.driver" value="com.my ...

  5. C语言exp()函数:e的次幂函数(以e为底的x次方值)

    头文件:#include <math.h> exp()用来计算以e 为底的x 次方值,即ex 值,然后将结果返回.其原型为:    double exp(double x); [返回值]返 ...

  6. 10个HTML5 实战教程 提升你的综合开发能力

    HTML5 作为下一代网站开发技术,无论你是一个 Web 开发人员或者想探索新的平台的游戏开发者,都值得去研究.借助尖端功能,技术和 API,HTML5 允许你创建响应性.创新性.互动性以及令人惊叹的 ...

  7. 使用Servlet根据浏览器request的get方法获取值,将磁盘中与之对应的json数据删除的方法

    package com.swift; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStrea ...

  8. Mycat高可用解决方案三(读写分离)

    Mycat高可用解决方案三(读写分离) 一.系统部署规划 名称 IP 主机名称 配置 192.168.199.112 mycat01 2核/2G Mysql主节点 192.168.199.110 my ...

  9. 读取properties的简单方法,使用@Configuration

    配置类代码如下 import org.springframework.beans.factory.annotation.Value; import org.springframework.contex ...

  10. 六、Linux 文件基本属性

    Linux 文件基本属性 Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限.为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规 ...