LoginSignup
0
0

More than 1 year has passed since last update.

[Ranorex] Tips : How to controll smartfolder (data driven) loop by parameter

Posted at

Back Ground

RanorexはUIテスト自動化として有効なツールである。
このツールでdata drivenを簡単に使用できる。
このdata drivenはdata sourceを設定し、事前にその範囲(すべて , 1-5 といった指定行)を定義して実行させる。
ただ、業務上この指定範囲を動的に変更したい場合がある。
その実装手順をまとめたものである。

image.png

上記例では、data 100 patternがあるなかで、1-10を実行する

How

image.png

smart folder

data drivenを実行するsmart folder(上記図では、 Favorite_AddJockey_Loop)の名前をUniqueにする。
次の範囲指定を変更するプログラムでは、smart folder名をもとに処理実行させるため、unuqueでないと、処理が正しく動かないからである。

set data range user_code

data rangeを変更するrecord moduleを作成する。(既存のrecord moduleの中に含めてもよい。)
上記図では、Common_SetDataRangeに該当する。
そのrecord moduleの中身が下記である
set_loop_parameterのuser codeを呼び出し、引数として 実行したいrange (min, max)を指定する。
image.png

実際のset_loop_parameterのコードが以下である。
動作として、data sourceのrangeのminとmaxを指定する。
尚、プログラム上ではdataの先頭が0としてあつかわれるため、 -1 を行っている。

TestSuite.CurrentTestContainer は、現在のtest suiteのsmart folderを指す。
TestCaseNameでsmart folder名を取得し、そのsmart folderに対して、MinRange , MaxRange を設定するものである。
このTestCaseNameが先ほど指摘した通り、uniqueでないと、正しくCurrentTestCase が取れなくなるため、必ずuniqueにするように。

image.png

code

		public void set_loop_parameter(string max, string min)
		{

			var TestCaseName = TestSuite.CurrentTestContainer.Name;
			var CurrentTestCase = TestSuite.Current.GetTestContainer(TestCaseName);      
			CurrentTestCase.DataRange.MinRange = int.Parse(min) - 1;  
			CurrentTestCase.DataRange.MaxRange = int.Parse(max) - 1;
			//setting the TestCaseName data range using items 1-10  
			CurrentTestCase.DataContext.SetRange(CurrentTestCase.DataRange.MinRange,CurrentTestCase.DataRange.MaxRange);  
			Report.Log(ReportLevel.Info, "Setting Data Range", 
			           TestCaseName + " range:" + "\nMin: " + CurrentTestCase.DataRange.MinRange.ToString() + "\nMax: " + CurrentTestCase.DataRange.MaxRange.ToString());

		}    

このようにして、data rangeを動的に変更することができる

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0