安徽建设工程信息网新网站哪儿登陆网站建设知识产权问题
2026/1/24 15:39:27 网站建设 项目流程
安徽建设工程信息网新网站哪儿登陆,网站建设知识产权问题,武进网站建设怎么样,短视频素材网站免费大推荐这几天有一个小工具需要做测试#xff0c;是一个命令行工具#xff0c;这个命令行工具有点类似mdbg等命令行工具#xff0c;即程序运行后#xff0c;在命令行等待用户敲入的命令#xff0c;处理命令并显示结果#xff0c;再继续等待用户敲入新的命令。 原来的测试用例都…这几天有一个小工具需要做测试是一个命令行工具这个命令行工具有点类似mdbg等命令行工具即程序运行后在命令行等待用户敲入的命令处理命令并显示结果再继续等待用户敲入新的命令。原来的测试用例都是手工执行的即在测试文档里写明输入什么命令期望得到什么结果之类的。这种手工的工作当然要自动化执行才行。但是自动化测试这个工具有一个问题因为这个工具不象其他的命令行程序—接受一些命令行参数处理一下并显示结果然后退出。而是在命令行不断地接受新的指令处理并回显再接受用户新的命令。因此不能用普通的 批处理的方式来执行测试。要对这种程序执行自动化测试主要是利用到每个进程启动时实际上都是有三个默认已经打开的文件标准输入Standard Input、标准输出Standard Output和标准错误输出Standard Error。对于命令行程序来说标准输入就是键盘标准输出就是电脑屏幕默认情况下标准错误输出和标准输出使用的是同一个文件在现代操作系统中所有的设备都被看成文件不光光是Linux, Unix这么处理其实Windows也是这么处理的。进程的标准输入、输出以及错误输出在启动进程之前实际上是可以更换的这也就是进程间通信经常采用的一个技术—管道技术。即你可以通过管道技术将一个进程的标准输入和另一个进程的标准输出连接起来这样一个进程输出一些数据后另外一个进程就自动获得这些数据。下面这个简单的命令就是管道的一个应用dir | sort上面的命令就是把dir命令的输出的数据直接传递到sort的输入中这样sort就可以进行相应的排序过程如下图所示在Win32编程里使用管道稍微显得麻烦点但是在.NET里替换和关闭进程的标准输入、输出和错误输出都是相当简单的工作。假设下面这个程序是我们即将测试的命令行程序它的工作很简单就是不停地回显用户在命令行输入的字符串最后用户敲击空格时退出程序执行using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication{public class Program{public static void Main(){string command null;do{Console.Write();command Console.ReadLine();Console.WriteLine();command command.TrimEnd();Console.WriteLine(Hello: {0}, command);}while (!string.IsNullOrEmpty(command));Console.WriteLine(Quiting ...);}}}下面是自动化测试程序它的工作就是打开待测得命令行程序使用管道技术向待测程序的标准输入传递命令然后从待测程序的标准输出读取结果using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Diagnostics;namespace CmdTest{class Program{static void Main(string[] args){if (args.Length ! 1){Console.WriteLine(Usage: CmdTest Application);return;}var cmd args[0];var startinfo new ProcessStartInfo(cmd);startinfo.UseShellExecute false;startinfo.RedirectStandardInput true;startinfo.RedirectStandardOutput true;startinfo.RedirectStandardError true;var process new Process();process.StartInfo startinfo;process.Start();var names new string[] {Yimin,Zhang San,Li Si,Wang Wu};foreach (var name in names){process.StandardInput.WriteLine(name);process.StandardInput.Flush();// Skip the echo charactersprocess.StandardOutput.ReadLine();var result process.StandardOutput.ReadLine();if (result ! string.Format(Hello: {0}, name))Console.WriteLine(Error!);}process.StandardInput.WriteLine();process.WaitForExit();}}}最后作为一位过来人也是希望大家少走一些弯路在这里我给大家分享一些软件测试的学习资料这些资料希望能给你前进的路上带来帮助。​视频文档获取方式这份文档和视频资料对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你以上均可以分享点下方小卡片即可自行领取。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询