كيفية تطوير اختبارات التكامل لخادم Atlassian Jira Server (jira-func-test-plugin)



لنتحدث عن كيفية إجراء اختبارات التكامل لخادم Atlassian Jira Server. لهذه الأغراض ، سنستخدم المكتبات التي يوفرها Atlassian: jira-func-test-plugin و jira-testkit-plugin.

تتيح لك اختبارات التكامل اختبار أداء مكونات Jira الإضافية من خلال الخدمات التي يتم تصديرها بواسطة المكون الإضافي وواجهة مستخدم Jira. بالطبع ، يمكنك فقط أخذ Selenium WebDriver وكتابة التعليمات البرمجية لاختبار واجهة مستخدم Jira. ومع ذلك ، في هذه الحالة ، عليك أن تصف كل المنطق بنفسك. على سبيل المثال ، تسجيل دخول المستخدم ، وإدخال استعلام JQL ، وإنشاء مشروع ، والتحقق من العناصر في شكل إنشاء مهمة ، وإدارة أذونات المشروع ، وما إلى ذلك. وتوفر مكتبات Atlassian طرقًا جاهزة بالفعل لذلك. علاوة على ذلك ، لا يلزم تغيير الرمز الخاص بك عند الترقية إلى إصدار جديد من Jira ، فقط خذ مكتبات Atlassian المناسبة لهذا الإصدار.

هناك ثلاث طرق لكتابة اختبارات الاندماج لـ Atlassian Jira التي توفرها Atlassian:

  1. تتيح لك الاختبارات السلكية اختبار الخدمات التي يصدرها المكوّن الإضافي خارجيًا. مثال على مثل هذا الاختبار هنا .
  2. تتطلب اختبارات التكامل تشغيل المكونات الإضافية jira-func-test-plugin و jira-testkit-plugin. تتحقق هذه الاختبارات من التشغيل الصحيح لواجهة مستخدم Jira باستخدام طلبات HTTP والاستجابات. مثال على مثل هذا الاختبار هنا .
  3. تختبر اختبارات كائنات الصفحة أيضًا واجهة مستخدم Jira ، ولكنها تعمل من خلال Selenium WebDriver.

كتب Atlassian أن اختبار واجهة المستخدم من خلال اختبارات كائنات الصفحة أفضل من الاختبار من خلال البرنامج المساعد jira-func-test-plugin. ولكن في هذه المقالة سوف نتعلم كيفية كتابة اختبارات التكامل باستخدام هذا البرنامج المساعد.

يمكن العثور على الكود المصدر للمكون الإضافي مع اختبارات التكامل التي تم تطويرها في المقالة هنا .

ما هي اختبارات التكامل؟


الفرق الرئيسي بين اختبارات التكامل واختبارات الوحدة هو أن اختبارات الوحدة لا تتطلب مثيل Jira يعمل ، على عكس اختبارات التكامل. لذلك ، من الضروري أن يتم طرح مثيل من Jira أثناء اختبار التكامل. يمكن إجراء الاختبار في كل من المثيل المحلي (Jira ، الذي تم رفعه من المكون الإضافي لدينا مع اختبارات التكامل) ، وعلى البعيد.

لنكتب أولاً اختبارات لمثيل محلي ، ثم سأخبرك بكيفية تشغيل نفس الاختبارات على مثيل بعيد.

أنشئ إضافة Jira


تم إنشاء المكوِّن الإضافي باستخدام الأمر atlas-create-jira-plugin .

أضف تبعيات إلى البرنامج المساعد لدينا


يجب إضافة التبعيات التالية إلى ملف pom.xml من المكون الإضافي الخاص بنا:

<dependency> <groupId>com.atlassian.jira.tests</groupId> <artifactId>jira-testkit-client</artifactId> <version>${jira.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>com.atlassian.jira</groupId> <artifactId>jira-func-tests</artifactId> <version>${jira.version}</version> <scope>test</scope> </dependency> 

ستسمح لنا هذه التبعيات بتطوير اختبارات التكامل.

قم بتثبيت المكونات الإضافية الضرورية لمثيل Jira المحلي


لكي تعمل اختبارات التكامل ، نحتاج إلى التأكد من أنه عند بدء تشغيل مثيل Jira المحلي ، يتم تثبيت المكوِّنات الإضافية jira-func-test-plugin و jira-testkit-plugin عليه.

للقيام بذلك ، أضف الأسطر التالية إلى تكوين المكون الإضافي maven-jira-plugin في pom.xml:

 <pluginArtifacts> <pluginArtifact> <groupId>com.atlassian.jira</groupId> <artifactId>jira-func-test-plugin</artifactId> <version>${jira.version}</version> </pluginArtifact> <pluginArtifact> <groupId>com.atlassian.jira.tests</groupId> <artifactId>jira-testkit-plugin</artifactId> <version>7.12.3</version> </pluginArtifact> </pluginArtifacts> 

كتابة اختبار


أنشئ الملف src / test / java / it / ru / matveev / alexey / jira / تكامل الاختبار / selenium / ExampleTest.java:

 package it.ru.matveev.alexey.jira.integrationtests.selenium; import com.atlassian.jira.functest.framework.BaseJiraFuncTest; import org.junit.After; import org.junit.Before; import org.junit.Test; public class ExampleTest extends BaseJiraFuncTest { @Before public void setup() { backdoor.project().addProject("testproject", "TP", "admin"); backdoor.issues().createIssue("TP", "test issue"); } @Test public void goToIssueNavigator() { navigation.login("admin"); navigation.issueNavigator().createSearch("project = TP"); tester.assertTextPresent("TP-1"); } @After public void cleanup() { backdoor.project().deleteProject("TP"); } 

بشكل افتراضي ، يجب أن تحتوي جميع الاختبارات على Test اللاحقة حتى يتم تشغيل الملفات التي تحتوي على اختبارات التكامل. يمكن تجاوز هذا باستخدام المعلمة functionalTestPattern TESTPattern في تكوين البرنامج المساعد maven-jira-plugin.

في الاختبار أعلاه ، نختبر تشغيل البحث عند الطلب في Issue Navigator. في طريقة setup ، قم بإنشاء مشروع بمهمة ، ثم اكتب طلبًا يتلقى هذه المهمة ، وتحقق من أننا تمكنا بالفعل من تحديده. ثم في طريقة cleanup نحذف المشروع الذي تم إنشاؤه.

قم بإجراء الاختبار


يبدأ الاختبار باستخدام الأمر atlas-integration-test . في هذا الأمر ، ترتفع Jira المحلية ويتم إجراء اختبارات التكامل عليها.

هيكل الاختبار


هناك العديد من الفئات التي يمكنك BaseJiraEmailTest عند كتابة اختبارات التكامل: BaseJiraEmailTest و BaseJiraFuncTest و BaseJiraRestTest .

الفئة الأكثر استخدامًا هي BaseJiraFuncTest . يسمح لك باختبار جميع الوظائف اللازمة.

في هذه الفئة ، هناك متغيرات الفئة:

  • backdoor : يسمح لك بأداء الوظائف الإدارية ، مثل إدارة المشاريع ، والفهارس ، ومخططات إذن المشروع ، والمستخدمين ، وما إلى ذلك.
  • navigation : يتيح لك التنقل في واجهة المستخدم. يسمح لك أيضًا بالدخول والخروج من Jira تحت المستخدم المطلوب.
  • tester : يسمح لك بالعمل مع الصفحات: تعيين قيم الحقول ، والنقر فوق الأزرار ، والتحقق من وجود حقل في النموذج ، وما إلى ذلك.

تصل اختبارات التكامل إلى Jira كمسؤول مع admin كلمة المرور ، لذلك ، بالنسبة لاختبارات التكامل في Jira ، يجب أن يمتلك هذا المستخدم كلمة المرور هذه.

عند استخدام الأمر navigation.login("username") ، يجب أن تتطابق كلمة مرور المستخدم التي تقوم بتسجيل الدخول إلى Jira مع اسم المستخدم.

تشغيل اختبارات التكامل على مثيل بعيد


لتشغيل اختبارات التكامل على مثيل بعيد ، يجب تثبيت الإضافات jira-func-test-plugin و jira-testkit-plugin عليه.

بالإضافة إلى ذلك ، في المكون الإضافي مع اختبارات التكامل ، تحتاج إلى إجراء تغييرات على ملف src / test / resources / localtest.properties:

 jira.protocol = http jira.host = remote-instance jira.port = 2991 jira.context = /jira jira.edition = all jira.xml.data.location = src/test/xml 

الآن بعد تشغيل الأمر atlas-integration-test ، سيتم تشغيل الاختبارات على المثيل البعيد.

أمثلة على الاختبار


والخبر السار هو أن مطوري حزمة اختبارات jira-func قد أدرجوا في هذه الحزمة عددًا كبيرًا من الأمثلة مع الاختبارات لجميع المناسبات. هم في حزمة اختبارات الويب.

حظا سعيدا مع اختبار جيرا!

Source: https://habr.com/ru/post/ar427165/


All Articles