LoadRunner调用外部DLL的方法

上一篇 / 下一篇  2012-01-20 13:45:47 / 个人分类:lr

查看( 186 ) / 评论( 0 )

lYMT5BIT`D72047LoadRunner提供了功能强大的API集合,足够应付大多数性能测试的需求。但在某些情况下,这些API仍然有覆盖不到的地方。例如,我们有一个WEB应用,该应用有一个页面输入用户的信息,为了安全起见,用户输入的信息在提交之前都要先进行加密处理,加密处理通过本地的COM组件实现。

Mj1l1K{8@;y[-t7204751Testing软件测试网\2JusL:H0FP4]

对这个要求而言,LoadRunner的现有API不能提供直接支持,因为LoadRunner在录制脚本时只录制数据交互,因此,COM的加密处理过程是不能录制下来的。在LoadRunner的脚本中,可能只有类似以下的语句描述了这个过程:

iHS6E l\2M3h72047

-qmxuf |+nr72047…………
Tcm p B6rI72047web_url("userinfo",
5q%r _(r$QU_j:m72047"URL=http://testweb/userinfo.aspx",
rT IS'm/yW h? m72047"TargetFrame=",
,tP ~K7l:O72047"Resource=0",51Testing软件测试网#VZ kc0Of;j.I
"Referer=",51Testing软件测试网K,P3z*ol
LAST);51Testing软件测试网Z-l)pYp9N

\ ^'\3}QD72047web_submit_form("login ",
keK q4i%tG72047"Snapshot=t4.inf",51Testing软件测试网l bj^P0s:c!r&~
ITEMDATA,
)@(G2X\z7VP9X.H72047"Name=username", "Value=4e92Sh6d394g", ENDITEM,
RhIP3C72047"Name=password", "Value=932A2hf34U18", ENDITEM,51Testing软件测试网v"ZO9r3}Pg,u7r
LAST);51Testing软件测试网P]?)z#GGK.}x
…………

1][h k `8bh A,L P72047

nr J0I/tF AA3M @9JE72047从脚本可以看到,输入的数据是加密后的数据,但LR没有录制到加密过程。

;DE"?;Q\7204751Testing软件测试网.N:rMRt$zO

假设加密函数所在的DLL名为security.dll,用于加密的函数名为encode,则一种可能的对脚本的修改方法如下代码所示。51Testing软件测试网b5p eG c/_-Bt
…………51Testing软件测试网 Y A&iSu]NZ
char *encode_username, *encode_password, *orgin_username, *orgin_password;51Testing软件测试网Ag@zD1Kb
char* uservalue, passvalue;
? p2Ze/C`J R+MKZ72047int ret;51Testing软件测试网1[0_{0]5mb a8xpC
……51Testing软件测试网6H"W,h[)DiNRx
web_url("userinfo",
0_;g1@9v ?Y72047"URL=http://testweb/userinfo.aspx",
t(Hq N]b{72047"TargetFrame=",
2H ?T s+jPf4bl72047"Resource=0",51Testing软件测试网.kZ"qk3T]E
"Referer=",51Testing软件测试网y XC+sOL
LAST);

x5P9[ o![g"M Y @#U5]72047

qqr!nl.w!~@+V"o72047orgin_username = lr_eval_string(“{ username }”); //获取参数的值51Testing软件测试网2[v7~Uuc zg(rY
orgin_password = lr_eval_string(“{ password }”);

u-xa5c`0tO+^7204751Testing软件测试网/BYZ0T kJ

ret = lr_load_dll(“security.dll”); //加载DLL库

0}s0a*N-Z9H#`7204751Testing软件测试网.I&|8_lP}

encode(origin_username, encode_username); //调用encode函数51Testing软件测试网wF+^ S]6ID5w
encode(origin_password, encode_password);

4MA{ pW9}VB7204751Testing软件测试网fPlf1~*eT5V


1LCK3]KM#q)^;e a72047sprintf(uservalue, “Value=%s”, encode_username);51Testing软件测试网#?D;l1F#R.oST1Q
sprintf(passvalue, “value=%s”, encode_password);

fMiT9y72047

-} pvh;FqQwe72047web_submit_form("login ",
1b{W4O#Z&n_D3Z72047"Snapshot=t4.inf",
+R VBCA H.[]V$t72047ITEMDATA,51Testing软件测试网C"x~3A(G,`
"Name=username", uservalue, ENDITEM,51Testing软件测试网;n%NF'ZYTN
"Name=password", passvalue, ENDITEM,51Testing软件测试网/u"yF%\)l
LAST);51Testing软件测试网!l)o@+I7SY6Jg
…………
3_!{&\*y&g V"Z72047

C a n:^D72047

TAG:

 

评分:0

我来说两句

日历

« 2024-04-25  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 36581
  • 日志数: 104
  • 建立时间: 2011-10-10
  • 更新时间: 2012-04-12

RSS订阅

Open Toolbar