winthnight 发表于 2009-12-9 16:09:06

system()函数的用法

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

    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:33

协议选的不对,web/http是对80端口的录制,而你的是C/S模式

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

或者试试更底层的windows socket录制

Lennon 发表于 2009-12-11 17:40:44

本地的操作,跟协议没有关系
尝试将斜杠转义
sprintf(command,"C:\\Test.exe --username=abc --password=123" );

jacksboy 发表于 2009-12-11 17:50:57

system(command);这个命令是专用于c脚本里才有的吧,在别的协议里能运行么。
反正我在别的协议里一运行这个命令就报错,只有在c协议下才通过。

Lennon 发表于 2009-12-11 18:28:32

在http协议里面是肯定可以运行的

shanxi 发表于 2009-12-13 11:03:45

Try C language

system("C:\\Test.exe --username=abc --password=123")
页: [1]
查看完整版本: system()函数的用法