近期项目中,进行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 2602 Bone Collector骨头收藏者(01背包)

    题意:收藏骨头. 思路: 常规的01背包. #include <iostream> #define N 1005 using namespace std; int volume[N]; / ...

  2. 编写WsHttpBinding的WCF通信方式

    这个通信方式本人实验了好久,需要一个重要的条件是服务端和客户端的发送内容方式都是相同的声明,需要在配置文件写入,客户端: <system.serviceModel> <binding ...

  3. Unity的sendmessage用法

    刚学完sendmessage用法,自己也尝试测试了一下,用法如下: 1.在unity2017新建一个场景test 2.在场景中添加一个立方体cube作为主角,另添加一个胶囊体capsule,调整为如图 ...

  4. red hat的防火墙怎么关闭

    查看是否开启: service iptables status 关闭方法: service iptables stop 永远关闭: Ntsysv 把iptables前的*号去掉. 查看SELinux状 ...

  5. nginx入门学习步骤(linux)

    一.nginx下载(nginx-1.9.9) http://nginx.org/download/ 二.解压到指定文件夹 tar -zxvf 解压缩文件 三.设置配置信息 在nignx解压文件夹内执行 ...

  6. webpack 4.x 解决 webpack-dev-server工具在webpack构建的项目中使用问题

    webpack-dev-server工具能实现自动打包编译和热更新 首先将webpack-dev-server安装到项目中 npm install webpack-dev-server -D 这时在命 ...

  7. String&StringBuffer&StringBuilder区别

    String  String类是final类故不可以继承,也就意味着String引用的字符串内容是不能被修改.String有两种实例化方式:    (1)直接赋值(例中,String str = &q ...

  8. 数据库引擎InnoDB和myisam的区别和联系

    1.ENGINE=InnoDB 数据库存储引擎,DEFAULT 默认,CHARSET=utf8 数据库字符编码 2.数据库的存储引擎, mysql中engine=innodb和engine=myisa ...

  9. k8s的认证和service account简述

    k8s的认证: 与API server通信的客户端大致有两类:  1.集群客户端工具(kubectl.kubeadm.kubelet等)  2.集群内pod. 任何客户端访问k8s时的过程:  1.认 ...

  10. kubernetes搭建dashboard报错

    warningconfigmaps is forbidden: User "system:serviceaccount:kube-system:kubernetes-dashboard&qu ...