51Testing软件测试论坛

标题: system()函数的用法 [打印本页]

作者: winthnight    时间: 2009-12-9 16:09
标题: system()函数的用法
想用LR调用一个带参的系统外部命令
假设被调用的命令在cmd下的执行语句为 C:\Test.exe --username=abc --password=123 直接执行这条指令是能在数据库里留下登录记录的
现在我想用LR来调用它,脚本如下(我就用的一般的web/http协议的脚本,然后直接在action里写了如下一段):
Action()
{
    char command[1024];

    sprintf(command,"C:\Test.exe --username=abc --password=123" );

    system(command);   

    return 0;
}
然后回放一遍脚本,我想的是能够成功执行指令在数据库留下记录,然后我再参数化并发
结果回放后弹出一个cmd命令框然后瞬间消失(正常的执行是需要一定时间的),也没在数据库里留下记录

我想知道我是哪儿弄的不对?这个被调用的应用程序是用visual studio写的然后build出来的,所以不能用web/http协议么?
请知道的指点一下啊~~大谢!
作者: v522zy    时间: 2009-12-10 12:10
协议选的不对,web/http是对80端口的录制,而你的是C/S模式

应该选择客户端/服务器:MS SQL Server、ODBC、Oracle、DB2……,试试你数据库对应的协议

或者试试更底层的windows socket录制
作者: Lennon    时间: 2009-12-11 17:40
本地的操作,跟协议没有关系
尝试将斜杠转义
sprintf(command,"C:\\Test.exe --username=abc --password=123" );
作者: jacksboy    时间: 2009-12-11 17:50
system(command);  这个命令是专用于c脚本里才有的吧,在别的协议里能运行么。
反正我在别的协议里一运行这个命令就报错,只有在c协议下才通过。
作者: Lennon    时间: 2009-12-11 18:28
在http协议里面是肯定可以运行的
作者: shanxi    时间: 2009-12-13 11:03
Try C language

system("C:\\Test.exe --username=abc --password=123")




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2