`
linkyou66
  • 浏览: 234953 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

loadrunner生成唯一值

 
阅读更多
<div class="tit">LoadRunner生成唯一数</div>
<div class="date">2009年02月17日 星期二 22:57</div>
<table style="" border="0"><tbody><tr>
<td>
<div id="blog_text" class="cnt">
<div style="background-color: #f9f7ed;">
<div class="source">
<span style="color: #902000;">void</span> <span style="color: #06287e;">Main</span>()<br>{<br><span style="color: #902000;">int</span> i;<br><span style="color: #902000;">char</span> uStr[<span style="color: #40a070;">64</span>];<br> srand( (<span style="color: #902000;">unsigned</span>)time( <span style="color: #007020;">NULL</span> ) );// 最好放在vuser_init里<br><br><span style="font-weight: bold; color: #007020;">for</span> (i<span style="color: #666666;">=</span><span style="color: #40a070;">0</span>;i<span style="color: #666666;">&lt;</span><span style="color: #40a070;">10</span>;i<span style="color: #666666;">++</span>) {<br> GetUniqueString(i,uStr);<br> lr_output_message(uStr);<br> }<br>}<br><br><span style="color: #902000;">void</span> <span style="color: #06287e;">GetUniqueString</span>(<span style="color: #902000;">int</span> inValue,<span style="color: #902000;">char</span> <span style="color: #666666;">*</span>outStr)<br>{<br><span style="color: #902000;">int</span> id, scid;<br><span style="color: #902000;">char</span> <span style="color: #666666;">*</span>vuser_group; <br><br> lr_whoami(<span style="color: #666666;">&amp;</span>id, <span style="color: #666666;">&amp;</span>vuser_group, <span style="color: #666666;">&amp;</span>scid);<br> web_save_timestamp_param(<span style="color: #4070a0;">"tStamp"</span>, LAST);<br> sprintf(outStr,<span style="color: #4070a0;">"%s%05d%010d%04d"</span>,lr_eval_string(<span style="color: #4070a0;">"{tStamp}"</span>),id,rand(),inValue);<br> free(vuser_group);<br>}</div>
</div>
<br> 建议把随机种子(srand( (<span style="color: #902000;">unsigned</span>)time( <span style="color: #007020;">NULL</span> ) );)放在脚本初始化函数里,只需要初始化一次。若放在子函数里,每次调用都初始化一下的话,产生的随机数可能是一样的。是不安全的代码!<br> 这个唯一数,有四关:毫秒级的时间+虚拟用户ID+随机数+传入的参数;基本上在同一个Controller里不会出现重复了!再稍微处理一下就可以得到想法的东西了,譬如:<a href="http://hi.baidu.com/higkoo/blog/item/91c7e535db04571691ef39e2.html" target="_blank">LoadRunner实现:计算字符串Md5</a> 加密成md5串,再改装一下就成GUID了!<img src="http://img.baidu.com/hi/jx/j_0047.gif" alt=""><br><br> 这里有一个安全问题值得说明,随机种子最好只初始化一次,随机数的算法是和时间有一定关系的。若把随机种子放在子函数里,你会发现生成出来的随机数都是一样的。<br> 不要惊讶,为什么说是个安全问题,说严重一点,随机数是一种算法,有可能被别人劫获并计算出下一个随机值,故不安全!</div>
</td>
</tr></tbody></table>
分享到:
评论

相关推荐

    LoadRunner C语言实现生成GUID

    本文将深入探讨如何利用LoadRunner结合C语言来生成全局唯一标识符(GUID),并详细解析相关代码及其实现机制。 ### 标题与描述中的知识点:LoadRunner C语言实现生成GUID #### LoadRunner简介 LoadRunner是由...

    LoadRunner中文版文档

    - **如何使用唯一的服务器值**:对于需要动态生成的数据,如服务器返回的唯一ID,LoadRunner提供了参数化功能,使脚本能正确处理这些值。 #### 六、准备用于负载测试的脚本 - **如何度量业务流程**:通过设置虚拟...

    史上最全LoadRunner教程,物超所值!

    - **使用唯一值**:确保每个虚拟用户使用的数据都是唯一的。 #### 十一、为负载准备测试脚本 - **业务流程评估**:分析应用的实际使用场景。 - **多用户模拟**:通过参数化脚本模拟不同的用户行为。 - **Web页面...

    LoadRunner 参数化的功能详解

    参数化是指使用指定的数据源中的值来替换脚本录制生成的语句中的参数。这种技术在LoadRunner等性能测试工具中非常常见,其核心目的是为了提高脚本的灵活性和可重用性。 #### 二、参数化的好处 1. **减小脚本的大小...

    HP loadrunner Tutorial英文版

    - **处理服务器唯一值**:学习如何处理动态数据,使脚本能适应不同的测试环境。 #### Lesson 4: 准备Vuser脚本进行负载测试 - **测量业务流程持续时间**:确定关键业务操作所需的时间,作为性能指标。 - **模拟多个...

    Tutorial loadrunner

    - **使用唯一服务器值**:在脚本中使用动态值替换静态值,以提高脚本的健壮性。 - **调试脚本**:通过日志记录和其他调试工具来定位和修复脚本中的问题。 #### 六、为负载测试准备脚本 - **业务流程评测**:评估...

    loadrunner9.5祥细教程

    - **使用唯一的服务器值**:在脚本中使用动态值替换静态值,提高脚本的复用性和稳定性。 #### 六、准备用于负载测试的脚本 - **度量业务流程**:定义关键业务操作,并将其作为脚本的一部分。 - **模拟多个用户**:...

    LoadRunner11-中文教程.pdf

    - 使用唯一的服务器值,确保测试数据的一致性和准确性。 - **为负载测试准备脚本**: - 评测业务流程,确保脚本能够准确反映实际用户行为。 - 模拟多个用户同时访问,检验系统处理高并发的能力。 - 验证Web页面...

    loadrunner参数化学习

    参数化是LoadRunner中的一个核心功能,它允许用户在测试脚本中使用变量代替固定的值,从而实现动态数据的加载和处理。通过参数化,我们可以模拟不同的用户行为,增强脚本的灵活性和可重用性。参数化的主要作用有: ...

    LoadRunner参数化功能详解

    - Once:第一次迭代时取唯一值,后续所有迭代保持不变,每个虚拟用户在整个测试期间都有其固定值。 在使用这些参数化方法时,必须确保数据源(如数据文件)有足够的记录以支持指定的虚拟用户数量和迭代次数。例如...

    HP_LoadRunner_11.5_tutorial_T7177-88034.pdf

    - **处理服务器返回的唯一值**:讲解如何应对因服务器返回的唯一值导致的重放错误。 - **调试技巧**:分享调试脚本的方法和最佳实践。 #### 第四课:为负载测试准备 Vuser 脚本 - **测量业务流程持续时间**:介绍...

    loadrunner

    LoadRunner提供了多种工具和策略来处理回放过程中可能遇到的问题,例如,使用唯一的服务器值来避免冲突,评测业务流程的稳定性,以及生成调试信息来定位错误。 ### 创建负载测试场景 - **模拟多个用户**:通过调整...

    经典LoadRunner性能测试实战讲解

    - 将固定的数据替换为变量或数据表中的值,提高脚本的灵活性。 - **3.3.2 深入集合点** - 在特定时刻让所有虚拟用户同步执行某些操作,以模拟峰值负载。 - **3.3.3 巧用检查点** - 在脚本中插入检查点来验证特定...

    如何在 LoadRunner 脚本中做关联

    通常,当录制脚本时,VuGen会捕获客户端和服务器之间的交互,但这些交互可能包含一些动态生成的数据,如Session ID。如果在回放脚本时不使用最新的动态数据,服务器可能会拒绝请求,导致测试失败。 关联的主要目的...

    LoadRunner_Training.

    DateTime参数可以自定义日期和时间格式,Random Number用于生成随机数,Unique Number确保每个虚拟用户在每次迭代中获得唯一值。使用这些参数时,需注意范围和限制,避免导致脚本错误。 4. **Controller**:...

    loadrunner入门问题227个解答

    关联是处理动态数据的关键,确保每次回放时能正确地处理服务器返回的唯一值,如Session ID或Cookie。 6. **场景设置**: 在Controller中,可以设置并发用户数、负载模型、测试持续时间等,创建符合实际业务场景的...

    Loadrunner9.5使用教程

    - **参数化技术**:使用参数化技术来处理唯一值,确保每次测试都是独一无二的。 #### 六、准备用于负载测试的脚本 **6.1 如何度量业务流程** - **定义业务目标**:明确业务流程的关键步骤。 - **设置度量标准**:...

    LoadRunner 组成

    通过模拟成千上万的实际用户操作,LoadRunner能够生成可重复、一致的系统负载,同时监测并记录系统在高负载下的表现,为性能调优提供关键数据。 #### LoadRunner的组成 LoadRunner主要由以下几部分组成: 1. **...

    loadrunner进行软件测试

    - **唯一服务器值**:为确保脚本的准确性和可重复性,需要处理服务器返回的动态数据。 **6. 准备用于负载测试的脚本** - **业务流程测量**:定义关键的业务流程并对其进行性能度量。 - **多用户模拟**:通过配置...

Global site tag (gtag.js) - Google Analytics