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

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

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

查看( 2911 ) / 评论( 9 )
[i=s] 本帖最后由 云层 于 2011-12-16 14:05 编辑
W:_9W PK+n R0
.CschV7{|0 发现自己C语言还是蛮烂的,写了一个随机字符串的写法在LR中用来解决一些需要输入属性赋值问题,但是总觉得这个写法不好,征求一个更好的写法:51Testing软件测试网'S)ui|@@R
主要是LR的C貌似不能用char这类的取ascii码51Testing软件测试网x!o0mBLj

qC.kVZ'byqn7L0 研究了一下换了个写法,这种写法效率应高很多了,利用了%c的转码功能

CODE:

N^$V%W~w3s:n0char *randstring1(int slen)
7Ti9d f&zh6d0 {51Testing软件测试网4V%P7? k/{&H!B)A:h
        int i,randid;
+t H6MP0JZ#R7`#^[0         char temp[100]="";
t i4|"@&Ds&B8k0     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软件测试网 p!nL6^y

-t0Ls px#[G0         for(i=1;i<=slen;i++)
2jh9fZLus0         {
F9F^M5q/C8Z0                 randid=rand()%52;
9Bgi"ez*JUU0                 sprintf(temp,"%s%c",temp,character_set[randid]);51Testing软件测试网?#|(P7P~'ADx
        }51Testing软件测试网'y1Q:~ i;f sQ g
        return(temp);51Testing软件测试网vbJ N6z
}Action(){        lr_output_message(randstring1(5));        return 0;}
下面的这种老写法大家随便看看

CODE:

CG+zs*} C Lt&@0void randstring(int slen)51Testing软件测试网$F bc*O-E
{
1]Bm!AEI9h_ At0         int x,randid,i;
F3?O L3rkL+nAj0         char *smsg,temp[100];51Testing软件测试网$GC$Q-n+E r0w
        smsg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";51Testing软件测试网XN7X2t/n![ ~D{
        x=strlen(smsg);
(V+x,o0x't? y0         for(i=1;i<=slen;i++)51Testing软件测试网R Z9s L`3t"e
        {51Testing软件测试网)Vii;@PFt_p
                randid=rand()%x+1;
:vS x4g9Tm d b:Zu0                 lr_save_var(smsg+randid,1,0,"test");
jf [@QP4r0                 strcat(temp,lr_eval_string("{test}"));51Testing软件测试网WX)xA5@2}W ~L
        }
v/?NfO,R{0         lr_save_string(temp,"randstring");51Testing软件测试网?!Dgt*t9N ])b
}
eRFK)x0 Action()51Testing软件测试网$a+CO-s;Y6W
{51Testing软件测试网 Ewv MG(_7H IE+xx
        randstring(5);51Testing软件测试网wA,i(T d4r DLU
        lr_output_message(lr_eval_string("{randstring}"));
o6li4JU;P0         return 0;
;el0eSX"?0 }

TAG:

mr.bee的个人空间 mr.bee 发布于2011-12-15 17:56:18
C已经忘记得差不多了
Hm^T1E~a
|J
{www.51testing.com
第一个对我已经完全够了
mymagic的个人空间 mymagic 发布于2011-12-16 10:05:37
没学过C语言的,查了半天rand()%52是什么意思){7`
H4q$|0g&E
jS

话说,为什么不是56 ?'w', 'x','y','z'都不需要么
琦迹的个人空间 亚瑟王 发布于2011-12-16 11:56:24
回复 3# mymagic
.f]'H0z-\-j2o%G7^'W51Testing软件测试网
%w[-JfSjt#Wf
,f9D
{4V0Q};a+wwww.51testing.com
   开始我也以为为啥不%56,后来仔细看了代码,发现character_set数组里面存的就是52个元素,所以去随机数时%52。不要被云版定义character_set[56] 长度数组欺骗了。 哈哈
mymagic的个人空间 mymagic 发布于2011-12-16 13:44:13
回复 4# 亚瑟王
-YQ2`]!{'pL-A7nwww.51testing.comwww.51testing.com['{+O y5N9V
C_+C

www.51testing.com%Vb*KY:g;C1m/U-N!a
    啊  对  英文26个字母中国软件测试人的精神家园,介绍先进的软件测试工具、 软件测试流程和软件测试思想,定期举办软件测试沙龙,软件测试精品 资料下载,提供专业的软件测试培训服务x2Po |/D` l
www.51testing.com\Z        i+}|(cO EO
云层太狡猾了
云层专版 云层 发布于2011-12-16 14:05:41
其实是我自己脑袋一热数组定义大了。。。。表示误导了大家。。
wcg57发布于2011-12-16 16:19:02
看了半天没有发现哪里有定义了56
mymagic的个人空间 mymagic 发布于2011-12-16 16:47:22
回复 7# wcg57 中国软件测试人的精神家园,介绍先进的软件测试工具、 软件测试流程和软件测试思想,定期举办软件测试沙龙,软件测试精品 资料下载,提供专业的软件测试培训服务u:CWE*P4L
d-`


L
k-HW6t;f;E51Testing软件测试网

~6^:g
?M0~1`:Hs*kwww.51testing.com
   
e"N Ny([l:if51Testing软件测试网 云层改了
tianmingyang发布于2011-12-16 16:55:18
C 语言都忘光了 不知怎么写了~~~~
wangyanzhao发布于2011-12-18 20:39:30
了解
我来说两句

(可选)

Open Toolbar