停止更新,敏捷测试及TestOps解决体系,关注订阅号TestOps

使用LR生成随机字符串参数[征求更好的算法]

上一篇 / 下一篇  2011-12-15 17:21:54 / 个人分类:《性能测试进阶指南》专栏

查看( 2909 ) / 评论( 9 )
[i=s] 本帖最后由 云层 于 2011-12-16 14:05 编辑 51Testing软件测试网*h}{amj4h,j8Q.v

Fm |:u+J C0 发现自己C语言还是蛮烂的,写了一个随机字符串的写法在LR中用来解决一些需要输入属性赋值问题,但是总觉得这个写法不好,征求一个更好的写法:
%{9q.G|rF)?%O3\0 主要是LR的C貌似不能用char这类的取ascii码51Testing软件测试网9X| F&^!Y2S*q

/GU r)K ^9JS"j,}0 研究了一下换了个写法,这种写法效率应高很多了,利用了%c的转码功能

CODE:51Testing软件测试网%|(GC2c0N T a[

char *randstring1(int slen)
O6s1T,R2r}$|F0 {
,n$G d5@Kz3q9a0         int i,randid;51Testing软件测试网{$Z;\)f0N)j%lI4c
        char temp[100]="";51Testing软件测试网hxr9Wnwaq
    char character_set[52] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N','O', 'P','Q', 'R', 'S', 'T','U', 'V', 'W', 'X','Y', 'Z','a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l','m', 'n', 'o', 'p', 'q', 'r','s', 't', 'u', 'v', 'w', 'x','y','z'};
iu4e0qle!n0
.u u-U{0V0         for(i=1;i<=slen;i++)51Testing软件测试网 F*fcM1h4i _
        {
0F$z$E$QfRy0                 randid=rand()%52;51Testing软件测试网3U3[ M)_ ddxw
                sprintf(temp,"%s%c",temp,character_set[randid]);51Testing软件测试网U_ _(L7ofz
        }51Testing软件测试网-Kb/Bp+Iq N
        return(temp);51Testing软件测试网 TET'e*h1H)N-B e7E
}Action(){        lr_output_message(randstring1(5));        return 0;}
下面的这种老写法大家随便看看

CODE:

,PJ2[ k3^5u*[0void randstring(int slen)
N.X-h-K5zM1r0 {
!nAe@[N0         int x,randid,i;51Testing软件测试网 ~x0z"SfHPQ
        char *smsg,temp[100];
0B9t`-_Z5F0         smsg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
?OyWl1V4~ k0         x=strlen(smsg);51Testing软件测试网9MeJG9p-v v2M
        for(i=1;i<=slen;i++)51Testing软件测试网 {dvQ&UmP.jqv-u
        {
t5_Dm g'[m%I)M0                 randid=rand()%x+1;51Testing软件测试网-Z"A7Bp7](B:l
                lr_save_var(smsg+randid,1,0,"test");
-pgC t M0                 strcat(temp,lr_eval_string("{test}"));
:K&Q"k D [0         }51Testing软件测试网g1^;X,o!v5a?j
        lr_save_string(temp,"randstring");
!OV2]j _!c;x7Y)^m0 }51Testing软件测试网.s+s9fRwG-^8D
Action()
kSE*N_Cz0 {
+I%EYy,LU&O0         randstring(5);51Testing软件测试网@L'T7h/|v;iw
        lr_output_message(lr_eval_string("{randstring}"));51Testing软件测试网R7ySE@
        return 0;51Testing软件测试网#{%p._8{(v&N
}

TAG:

mr.bee的个人空间 mr.bee 发布于2011-12-15 17:56:18
C已经忘记得差不多了中国软件测试人的精神家园,介绍先进的软件测试工具、 软件测试流程和软件测试思想,定期举办软件测试沙龙,软件测试精品 资料下载,提供专业的软件测试培训服务C#B2E4I%t        |+^4XV
第一个对我已经完全够了
mymagic的个人空间 mymagic 发布于2011-12-16 10:05:37
没学过C语言的,查了半天rand()%52是什么意思软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具W,jA+M$J+rvp`\?
话说,为什么不是56 ?'w', 'x','y','z'都不需要么
琦迹的个人空间 亚瑟王 发布于2011-12-16 11:56:24
回复 3# mymagic
8UXN`*x
?-K软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具

HogIp l-wA~,owww.51testing.com软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具 E8gK0s!TI\        FO.c
   开始我也以为为啥不%56,后来仔细看了代码,发现character_set数组里面存的就是52个元素,所以去随机数时%52。不要被云版定义character_set[56] 长度数组欺骗了。 哈哈
mymagic的个人空间 mymagic 发布于2011-12-16 13:44:13
回复 4# 亚瑟王
~T3z9T7p9vk*d中国软件测试人的精神家园,介绍先进的软件测试工具、 软件测试流程和软件测试思想,定期举办软件测试沙龙,软件测试精品 资料下载,提供专业的软件测试培训服务
wu[;[#}[:X7\
'pKc]s    啊  对  英文26个字母
N7O)|#NQA软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具
]3gU4Hl%U`$eg软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具云层太狡猾了
云层专版 云层 发布于2011-12-16 14:05:41
其实是我自己脑袋一热数组定义大了。。。。表示误导了大家。。
wcg57发布于2011-12-16 16:19:02
看了半天没有发现哪里有定义了56
mymagic的个人空间 mymagic 发布于2011-12-16 16:47:22
回复 7# wcg57
Pe
f mi ^*G软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具
软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具 Z'G:G(~cE5g&~7E
软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具K.o;a(e#E1s
    51Testing软件测试网.YT%m^Bqp
云层改了
tianmingyang发布于2011-12-16 16:55:18
C 语言都忘光了 不知怎么写了~~~~
wangyanzhao发布于2011-12-18 20:39:30
了解
我来说两句

(可选)

Open Toolbar