【LoadRunner】对摘要认证的处理
近期项目中,进行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】对摘要认证的处理的更多相关文章
- 前端学HTTP之摘要认证
前面的话 上一篇介绍的基本认证便捷灵活,但极不安全.用户名和密码都是以明文形式传送的,也没有采取任何措施防止对报文的篡改.安全使用基本认证的唯一方式就是将其与SSL配合使用 摘要认证与基本认证兼容,但 ...
- PHP 模拟 HTTP 摘要认证(Digest )
<?php header("Content-type: text/html; charset=utf-8"); /*php摘要认证*/ $users = ['dee'=> ...
- [转]ASP.NET Web API(三):安全验证之使用摘要认证(digest authentication)
本文转自:http://www.cnblogs.com/parry/p/ASPNET_MVC_Web_API_digest_authentication.html 在前一篇文章中,主要讨论了使用HTT ...
- ASP.NET Web API(三):安全验证之使用摘要认证(digest authentication)
在前一篇文章中,主要讨论了使用HTTP基本认证的方法,因为HTTP基本认证的方式决定了它在安全性方面存在很大的问题,所以接下来看看另一种验证的方式:digest authentication,即摘要认 ...
- HTTP协议学习---(三)摘要认证
Http 摘要认证 这个认证可以看做是基本认证的增强版本,使用随机数+密码进行md5,防止通过直接的分析密码MD5防止破解. 摘要访问认证最初由 RFC 2069 (HTTP的一个扩展:摘要访问认证) ...
- 详解HTTP中的摘要认证机制(转)
Basic认证方式是存在很多缺陷的,具体表现如下: 1, Basic认证会通过网络发送用户名和密码,并且是以base64的方式对用户名和密码进行简单的编码后发送的,而base64编码本身非常容易被解 ...
- Tomcat - 设置 HTTP 摘要认证
在 Tomcat 中设置 HTTP 摘要认证的示例 在 Tomcat 中设置摘要认证与设置基本认证几乎一样,差别在于配置 web.xml 时,<login-config/> 元素在指定认证 ...
- HTTP - 摘要认证
基本认证便捷灵活,但极不安全.用户名和密码都是以明文形式传送的,也没有采取任何措施防止对报文的篡改.安全使用基本认证的唯一方式就是将其与 SSL 配合使用. 摘要认证是另一种 HTTP 认证协议,它与 ...
- 安全验证之使用摘要认证(digest authentication)
安全验证之使用摘要认证(digest authentication) 在前一篇文章中,主要讨论了使用HTTP基本认证的方法,因为HTTP基本认证的方式决定了它在安全性方面存在很大的问题,所以接下来看看 ...
随机推荐
- VMware虚拟机配置文件(.vmx)损坏修复
我的虚拟机为VM14 装的ubuntu14.04server版 遇到ubuntu打不开,上网查阅了博客写的解决办法,尝试并解决了,以下分享个人心得: 首先进入虚拟机中系统安装的位置 查看日志文件 ...
- LeetCode Merge Sorted Array 合并已排序的数组
void merge(int A[], int m, int B[], int n) { int *a=A,*b=B; ,j=; ||m==){ //针对特殊情况,比如A或B中无元素的情况 & ...
- CAsyncSocket create创建套接字失败
解决方法: 在继承CAsyncSocket 类的子类的构造函数中加入以下代码: if (!AfxSocketInit()) AfxMessageBox(IDP_SOCKETS_INIT_FAILED) ...
- linux 命令——47 iostat (转)
Linux系统中的 iostat 是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视.它的特点是汇报磁盘活动统计情况,同时也会 汇报出CPU使用情况 ...
- [VC]VC实现开机自动运行程序
有时候,我们需要在计算机启动的时候就启动某些程序,不要人干预.这里,提供一种让程序开机自动运行的方法.见下面代码: BOOL CXXX::SetAutoRun(CString strPath) { C ...
- IOS autosizing(设置控件的固定位置大小)
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typica ...
- Java代码工具箱之控制台输出重定向_控制台输出到文件
1. 情形:有时候控制台输出太多,在MyEclipse显示不全. 2. 说明:本代码只会重定向 system.out 的内容, error及其它不受代码影响.其它应该类似. //自定导入必要库 //然 ...
- windows2012服务器搭建mongodb并设置远程访问
因为python脚本需要用到mongodb,而且需要本地查看数据库,所以就在腾讯云的windows服务器上部署了mongodb服务器,因为网上大部分教程是针对linux的自己搜索走了很多坑,这里记录下 ...
- node的webserver模板
const express = require('express'); const swig =require('swig'); const fs = require('fs'); //创建服务器 c ...
- nginx 如何配置来获取用户真实IP