אצלי בצוות כבר עובדים המון זמן עם Biztalk. יש אפליקציות Biztalk שקיימות כבר כמה שנים. לאחר כל שינוי באפליקציה מבצעים בדיקות כמובן. לרוב אלו בדיקות אינטגרציה עם מערכות אחרות.
עד היום, הבדיקות בוצעו באופן ידני (למשל: לוקחים קובץ לדוגמא, זורקים לתיקייה, ובודקים לאן הקובץ נשלח, ואת התוכן שלו). תתארו כמה זמן הטסט הידני הזה לוקח..
לאחרונה התחלנו להשתמש עם ה BizUnit ככלי בדיקות אוטומאטי עבור כל בדיקות האינטגרציה.
כמובן שלוקח קצת זמן ללמוד להשתמש, ולהתחיל לכתוב טסטים מקצה לקצה, אך לאורך זמן המאמץ ישתלם.
BizUnit זוהי פלטפורמה לבדיקות דקלרטיבית חינמית לבדיקות Black-Box אשר מיועדת בעיקר לבדיקות אפליקציות ה Biztalk, אך כמובן אפשר להשתמש בכלי עבור כל אפליקציה שאנחנו יוצרים ( תהיו יצירתיים..).
הסבר להורדה, התקנה, ודוגמאות אפשר להוריד מכאן.
את מגוון הבדיקות שאפשר לעשות עם הפלטפורמה אפשר למצוא כאן
את הבדיקות אפשר לכתוב כקובץ XML, או לכתוב כקוד #C. היתרון הגדול שאפשר להשתמש ולמחזר קומפוננטות בדיקה שונות שכתבתם במהירות, עבור טסטים שונים.
בהתחלה נתקלתי במספר קשיים בכתיבת הבדיקות, אך לאחר מחקר קטן באינטרנט אפשר היה למצוא פתרון.
אני אציג סנריו קצר לבדיקות באמצעות הפלטפורמה, שמהווה (גם לי) בסיס ליצירת בדיקות חדשות.
את כל ה step נכתוב כמובן בתוך פונקציית בדיקה רגילה- [TestMethod]
שלב 1-נגדיר TestCase שהוא בעצם מייצג את הסנריו שלנו:
שלב 2- מחיקת כל הקבצים (במקרה שלנו קבצי XML) מהנתיב שבו נוצר הקובץ שאנחנו רוצים לבדוק (למשל לאחר ה send-port)
שלב 3- מחיקת רשומות מה DB שלנו (במקרה הזה SQL SERVER)
שלב 4- בעצם כאן מתחילים את הבדיקה עצמה- העברת קובץ מתיקיית מקור ליעד ( לתיקייה שהביזטוק יקרא ממנה)
שלב 5- כעת הקובץ עבר לתיקייה, והביזטוק (או המערכת) תקרא את הקובץ, נמתין זמן מסויים (עד שהמערכת שלנו "תעבד" את הבקשה לפני שנמשיך עם שאר הבדיקות:
שלב 6- נתשאל רשומה ב DB ונבדוק אם קיבלנו מה שציפינו לקבל:
שלב 7- נבדוק שקיבלנו קובץ XML אחד בתיקיית ה OUTPUT שלנו, ושהוא בנוי על פי סכמה מסויימת:
שלב 8- נבדוק שקיבלנו ב XML ערכים כפי שציפינו - על ידי XPATH
ובשלב האחרון פשוט מריצים את כל ה STEP'S:
כעת כל ה STEP ירוצו אחד אחרי השני.
אם אחד ה Step ים יכשל, יופיע Exception מסודר, שמפרט בדיוק באיזה Step הבדיקה נכשלה.
בדיקות מהנות!
עד היום, הבדיקות בוצעו באופן ידני (למשל: לוקחים קובץ לדוגמא, זורקים לתיקייה, ובודקים לאן הקובץ נשלח, ואת התוכן שלו). תתארו כמה זמן הטסט הידני הזה לוקח..
לאחרונה התחלנו להשתמש עם ה BizUnit ככלי בדיקות אוטומאטי עבור כל בדיקות האינטגרציה.
כמובן שלוקח קצת זמן ללמוד להשתמש, ולהתחיל לכתוב טסטים מקצה לקצה, אך לאורך זמן המאמץ ישתלם.
BizUnit זוהי פלטפורמה לבדיקות דקלרטיבית חינמית לבדיקות Black-Box אשר מיועדת בעיקר לבדיקות אפליקציות ה Biztalk, אך כמובן אפשר להשתמש בכלי עבור כל אפליקציה שאנחנו יוצרים ( תהיו יצירתיים..).
הסבר להורדה, התקנה, ודוגמאות אפשר להוריד מכאן.
את מגוון הבדיקות שאפשר לעשות עם הפלטפורמה אפשר למצוא כאן
את הבדיקות אפשר לכתוב כקובץ XML, או לכתוב כקוד #C. היתרון הגדול שאפשר להשתמש ולמחזר קומפוננטות בדיקה שונות שכתבתם במהירות, עבור טסטים שונים.
בהתחלה נתקלתי במספר קשיים בכתיבת הבדיקות, אך לאחר מחקר קטן באינטרנט אפשר היה למצוא פתרון.
אני אציג סנריו קצר לבדיקות באמצעות הפלטפורמה, שמהווה (גם לי) בסיס ליצירת בדיקות חדשות.
את כל ה step נכתוב כמובן בתוך פונקציית בדיקה רגילה- [TestMethod]
שלב 1-נגדיר TestCase שהוא בעצם מייצג את הסנריו שלנו:
public class CarShop
var totalItemsTest = new TestCase { Name = "my test case" };
string dbConnectionString = @"Data...";
DeleteStep deleteStep = new DeleteStep();
deleteStep.FilePathsToDelete = new Collection<string> { @"c:\out\*.xml" };
totalItemsTest.SetupSteps.Add(deleteStep);
var dbTestStep = new BizUnit.TestSteps.Sql.DbQueryStep();
dbTestStep.ConnectionString = dbConnectionString;
dbTestStep.SQLQuery = new SqlQuery
{
RawSqlQuery = @"Delete From SomeDb.dbo.table; select 1;"
};
dbTestStep.NumberOfRowsExpected = 1;
dbTestStep.DelayBeforeCheck = 10;
totalItemsTest.ExecutionSteps.Add(dbTestStep);
שלב 4- בעצם כאן מתחילים את הבדיקה עצמה- העברת קובץ מתיקיית מקור ליעד ( לתיקייה שהביזטוק יקרא ממנה)
var moveTeststep = new CreateStep();
moveTeststep.CreationPath = @"c:\destination";
var dataLoader = new FileDataLoader();
dataLoader.FilePath = @"c:\fromLocation";
moveTeststep.DataSource = dataLoader;
totalItemsTest.ExecutionSteps.Add(moveTeststep);
var waitTestStep = new DelayStep();
waitTestStep.DelayMilliSeconds = 10000;
totalItemsTest.ExecutionSteps.Add(waitTestStep);
שלב 6- נתשאל רשומה ב DB ונבדוק אם קיבלנו מה שציפינו לקבל:
var dbSelectTestStep = new DbQueryStep();
dbSelectTestStep.ConnectionString = dbConnectionString;
dbSelectTestStep.SQLQuery = new SqlQuery
{
RawSqlQuery = @"select top(1) from tbl where cell='11' "
};
dbSelectTestStep.NumberOfRowsExpected = 1;
dbSelectTestStep.DbRowsToValidate = new Collection();
DbRowToValidate row = new DbRowToValidate();
DbCellToValidate cell = new DbCellToValidate();
cell.ColumnName = "colName";
cell.ExpectedValue = "12312";
row.Cells.Add(cell);
dbSelectTestStep.DbRowsToValidate.Add(row);
totalItemsTest.ExecutionSteps.Add(dbSelectTestStep);
שלב 7- נבדוק שקיבלנו קובץ XML אחד בתיקיית ה OUTPUT שלנו, ושהוא בנוי על פי סכמה מסויימת:
var validatingFileStep = new FileReadMultipleStep()
{
DirectoryPath=@"c:\out",
SearchPattern="*.xml",
Timeout=1000,
ExpectedNumberOfFiles=1
};
var validation = new XmlValidationStep();
var schemaSummary = new SchemaDefinition
{
XmlSchemaPath=@"c:\schema.xsd",
XmlSchemaNameSpace="http://Schemas/namespace"
};
validation.XmlSchemas.Add(schemaSummary);
שלב 8- נבדוק שקיבלנו ב XML ערכים כפי שציפינו - על ידי XPATH
var xpathStep = new XPathDefinition()
{
Description="type",
XPath="/*[local-name().....",
Value="expected value"
};
validatingFileStep.SubSteps.Add(validation);
totalItemsTest.ExecutionSteps.Add(validatingFileStep);
ובשלב האחרון פשוט מריצים את כל ה STEP'S:
var bizUnit = new BizUnit.BizUnit(totalItemsTest);
bizUnit.RunTest();
כעת כל ה STEP ירוצו אחד אחרי השני.
אם אחד ה Step ים יכשל, יופיע Exception מסודר, שמפרט בדיוק באיזה Step הבדיקה נכשלה.
בדיקות מהנות!
אין תגובות:
הוסף רשומת תגובה