如果你有坚定的信念你就不会迷茫。

BackgroundWorker

上一篇 / 下一篇  2010-12-31 14:05:10 / 个人分类:自动化测试

最近在写一个方便测试API的自动化工具,测试http各接口的返回值是否正确。

根据同事的一个工具改编了一下,当前的思路是:首先将各个接口从http获取结果返回string,分别做成一个函数,并且编译成一个dll文件。

制作测试用例:是制作了一个工具,可以从dll,添加函数,设置参数,并保存到xml文件中。每次都从xml文件中load参数(URL地址)接口名、参数。

执行测试用例:选中多个测试用例执行。执行结果返回http接口请求的返回值

 

在制作工具时碰到了一个问题,先列举出来给大家共享一下:

在执行批量测试用例时,无法查看已经执行完的用例结果。怎么办呢?怎么办呢?.net提供了BackgroundWorker,这个控件就可以解决这个问题了。这个控件就是让某些逻辑运行时同时可以对程序进行操作。

BackgroundWorker:常用的一些属性和方法如下:

事件:

a)      Dowork:包含后台操作的主要逻辑代码。帮助文档中说确保在DoWork事件处理程序中不操作任何用户界面对象。而应该通过ProgressChangedRunWorkerCompleted事件与用户界面进行通信,这个我没有想明白为什么,那位高手知道的一定要给我留言哦。

b)      ProgressChanged:如果在后台操作执行过程中需要在UI上显示进度,那么进度条更新需写入ProgressChanged事件中。例:后台是一个批量操作,那么每执行完一个就需要与UI做交互更新进度条。

c)      RunWorkerCompeleted:后台操作完成后进行的操作,可以UI的。

 

方法:

a) RunWorkerAsync:开始执行后台的线程,触发Dowork事件。

b) ReportProgress:触发ProgressChanged事件。当WorkerReportsProgress属性为True时,ReportProgress方法才能正常调用。

c) CancelAsync:请求取消挂起后台的操作,据官方说这里只是请求取消,只是将该backgroundworkerCancellationPending属性设置为false并不会终止后台操作。在后台操作中要检查CancellationPending属性,来决定是否要继续执行耗时的操作。可是本人查了好久资料都不知道什么时候后台操作中要检查CancellationPending属性,高手知道的也别忘了留言告诉我。

WorkerSupportsCancellation属性为True时,CancelAsync方法才能正常调用。

事件和方法的参数详细说明:

void backgroundWorker1_ProgressChanged( Object^ sender, ProgressChangedEventArgs^ e )

void ReportProgress(int percentProgress)

void ReportProgress(int percentProgress,Object^ userState)

ReportProgress调用时,ProgressChanged事件被触发。同时ReportProgress可能会传两个参数给ProgressChanged事件,那么ProgressChanged事件中该如何使用呢?分别用e.ProgressPercentagee.UserState.ToString()来获取。

 

backgroundWorker1.RunWorkerAsync(Text);

void backgroundWorker1_RunWorkerCompleted( Object^ sender, RunWorkerCompletedEventArgs^ e )

void backgroundWorker1_DoWork( Object^ sender, DoWorkEventArgs^ e )

RunWorkerAsync函数存在一个可选的参数,如果传入了该参数,那么我们可以在DoWork中通过e. Argument来访问该参数的值。

同时如果在DoWork事件中给e.Result赋过值那么我们就可以在RunWorkerCompleted中通过e.Result来访问该值。

 


TAG:

 

评分:0

我来说两句

日历

« 2024-04-07  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 20008
  • 日志数: 19
  • 建立时间: 2010-09-08
  • 更新时间: 2011-01-21

RSS订阅

Open Toolbar