如何写程序使得需要交互的程序自动完成交互。

joyself 2008-05-02 09:35:36
问题是这样的。

譬如有个程序a.out,运行后有些提示(不能直接后面跟参数,该程序我没有源码),假设:

[please input Yes or NO]:

[Please input a number]:


这里要输入 Yes 和 1,
不过我要重复测试这个程序的运行情况,譬如测个1000次, 大体意思就是这样的。
我想请问如何使得这个测试过程自动化,而不需要我每次去输入。



谢谢
...全文
101 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingstarer 2008-05-03
  • 打赏
  • 举报
回复
用重定向和管道应该是可以实现的 只要输入的数字有规律
kingstarer 2008-05-03
  • 打赏
  • 举报
回复
文本里面的换行就相当于回车了
cceczjxy 2008-05-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 joyself 的回复:]
引用 1 楼 brookmill 的回复:
1.
如果只运行一次,可以自己写一个文本文件tmp.txt,把需要输入的内容写进去:
Yes
1
然后 ./a.out < tmp.txt

2.
如果要运行1000次,而且每次输入的内容都一样,也很简单。
自己写一个shell脚本,调用"./a.out < tmp.txt"1000次就行了。
或者另外写个C程序,1000次循环system("./a.out < tmp.txt")

3.
如果要运行1000次,而且每次输入的内容不一样,就稍微麻烦一点…
[/Quote]


可以的
i=0
while [ $i -lt 1000 ]
do
./a.out <<EOF
$i
$i
<<EOF
i=`expr $i + 1 `
done
joyself 2008-05-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 brookmill 的回复:]
1.
如果只运行一次,可以自己写一个文本文件tmp.txt,把需要输入的内容写进去:
Yes
1
然后 ./a.out < tmp.txt

2.
如果要运行1000次,而且每次输入的内容都一样,也很简单。
自己写一个shell脚本,调用"./a.out < tmp.txt"1000次就行了。
或者另外写个C程序,1000次循环system("./a.out < tmp.txt")

3.
如果要运行1000次,而且每次输入的内容不一样,就稍微麻烦一点。
我再想想


[/Quote]

我试了,不行阿,你试过可以吗? 输入一个选项后,后面的“回车”怎么在tmp.txt里体现?
kojie_chen 2008-05-02
  • 打赏
  • 举报
回复
学习
brookmill 2008-05-02
  • 打赏
  • 举报
回复
如果每次输入的内容不一样,可能可以这么办:
for (i=0; i<1000; i++)
{
fp = fopen("tmp.txt","w");
fprintf(fp, whatever);
fclose(fp);
system("./a.out < tmp.txt")
remove("tmp.txt");
}
michney 2008-05-02
  • 打赏
  • 举报
回复
自己写一个自动化测试的框架
读配置文件,读出输入的数据,和测试的次数
调用程序,传入参数,记录结果
brookmill 2008-05-02
  • 打赏
  • 举报
回复
1.
如果只运行一次,可以自己写一个文本文件tmp.txt,把需要输入的内容写进去:
Yes
1
然后 ./a.out < tmp.txt

2.
如果要运行1000次,而且每次输入的内容都一样,也很简单。
自己写一个shell脚本,调用"./a.out < tmp.txt"1000次就行了。
或者另外写个C程序,1000次循环system("./a.out < tmp.txt")

3.
如果要运行1000次,而且每次输入的内容不一样,就稍微麻烦一点。
我再想想

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧