停止更新,更多信息关注微博 http://t.qq.com/cloudits 性能测试i进阶指南相关信息请见http://bbs.51testing.com/thread-1020883-1-1.html

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

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

查看( 2248 ) / 评论( 9 )
[i=s] 本帖最后由 云层 于 2011-12-16 14:05 编辑
:H#}1H h"D*t)gPT0 51Testing软件测试网j,pa` e{[ OH
发现自己C语言还是蛮烂的,写了一个随机字符串的写法在LR中用来解决一些需要输入属性赋值问题,但是总觉得这个写法不好,征求一个更好的写法:51Testing软件测试网 A&O,AREv3^D9F
主要是LR的C貌似不能用char这类的取ascii码51Testing软件测试网/z0u.KccC+L5p

Gt-S/Wi~!Q;ob0L0 研究了一下换了个写法,这种写法效率应高很多了,利用了%c的转码功能

CODE:51Testing软件测试网iI{aA1o`L

char *randstring1(int slen)51Testing软件测试网H l"g wD a{
{51Testing软件测试网mo5m6QU Wh OnTC
        int i,randid;51Testing软件测试网nc'_JP~o
        char temp[100]="";51Testing软件测试网 m(jj)yjN
    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'}; 51Testing软件测试网%I|A N `Ho7O
51Testing软件测试网/bl(Nq4To ap A9K,o |g
        for(i=1;i<=slen;i++)51Testing软件测试网{9\ hAR
        {
mx'o kC$J-Y0                 randid=rand()%52;
)N\+p9Y |#\0                 sprintf(temp,"%s%c",temp,character_set[randid]);51Testing软件测试网#_)sC o o(_x DUP
        }51Testing软件测试网6z&n8V1Q ps7@
        return(temp);51Testing软件测试网d2Pq.A;S7iS
}Action(){        lr_output_message(randstring1(5));        return 0;}
下面的这种老写法大家随便看看

CODE:

%T%J?"CoP#T:L0void randstring(int slen)
+V.p*iW'Nr$j2p0 {51Testing软件测试网5}Lu!i`;O
        int x,randid,i;
1CHlW*^'S0         char *smsg,temp[100];
p$BB7wz%p/},F0         smsg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";51Testing软件测试网,OZ Bw$a,g4P"L~
        x=strlen(smsg);51Testing软件测试网n2tr5b u5rp#C
        for(i=1;i<=slen;i++)
o-V'}]~`0g;F]l0         {
Td2[3XoktO {t0                 randid=rand()%x+1;51Testing软件测试网 ] dZ(k/V+G5}1b
                lr_save_var(smsg+randid,1,0,"test");
W|l&SK w?V(g0                 strcat(temp,lr_eval_string("{test}"));
;pK!a+?V`l)_EXP0         }
@ zJ {k1p[6k0         lr_save_string(temp,"randstring");
1p(c \2w;YIl*Ut$~e0 }51Testing软件测试网*~5p:U.^ lR w
Action()51Testing软件测试网:K#G.ONn*k
{51Testing软件测试网2PSg N`\gH7F T
        randstring(5);51Testing软件测试网 Dt:o IQp3dl x
        lr_output_message(lr_eval_string("{randstring}"));51Testing软件测试网 w0U E@#Y/c x
        return 0;
Wg,dU;q(?-nd0 }

TAG:

mr.bee的个人空间 mr.bee 发布于2011-12-15 17:56:18
C已经忘记得差不多了6AM5BQ(HJE o
第一个对我已经完全够了
mymagic的个人空间 mymagic 发布于2011-12-16 10:05:37
没学过C语言的,查了半天rand()%52是什么意思软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具:H1_L)Q/z:V1RUf
话说,为什么不是56 ?'w', 'x','y','z'都不需要么
琦迹的个人空间 亚瑟王 发布于2011-12-16 11:56:24
回复 3# mymagic 51Testing软件测试网g8t"~2G
IT$j

中国软件测试人的精神家园,介绍先进的软件测试工具、 软件测试流程和软件测试思想,定期举办软件测试沙龙,软件测试精品 资料下载,提供专业的软件测试培训服务}6P;Q4KZ0\

m6j#FVl;h]*F jv1y   开始我也以为为啥不%56,后来仔细看了代码,发现character_set数组里面存的就是52个元素,所以去随机数时%52。不要被云版定义character_set[56] 长度数组欺骗了。 哈哈
mymagic的个人空间 mymagic 发布于2011-12-16 13:44:13
回复 4# 亚瑟王 中国软件测试人的精神家园,介绍先进的软件测试工具、 软件测试流程和软件测试思想,定期举办软件测试沙龙,软件测试精品 资料下载,提供专业的软件测试培训服务CD
D#T
_|


&[C.`:}rD软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具51Testing软件测试网}2LW4c'A'YF
    啊  对  英文26个字母51Testing软件测试网|:\2K5u/yu
中国软件测试人的精神家园,介绍先进的软件测试工具、 软件测试流程和软件测试思想,定期举办软件测试沙龙,软件测试精品 资料下载,提供专业的软件测试培训服务3z{
I0b
B        t(p

云层太狡猾了
云层专版 云层 发布于2011-12-16 14:05:41
其实是我自己脑袋一热数组定义大了。。。。表示误导了大家。。
wcg57发布于2011-12-16 16:19:02
看了半天没有发现哪里有定义了56
mymagic的个人空间 mymagic 发布于2011-12-16 16:47:22
回复 7# wcg57 软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具D
H6gDa"pp


Yn
w|
u `f"K软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具
www.51testing.com\^k(]x3S
    51Testing软件测试网}
vB-qf8`:~

云层改了
tianmingyang发布于2011-12-16 16:55:18
C 语言都忘光了 不知怎么写了~~~~
wangyanzhao发布于2011-12-18 20:39:30
了解
我来说两句

(可选)

Open Toolbar