
لنتحدث عن كيفية إجراء اختبارات التكامل لخادم Atlassian Jira Server. لهذه الأغراض ، سنستخدم المكتبات التي يوفرها Atlassian: jira-func-test-plugin و jira-testkit-plugin.
تتيح لك اختبارات التكامل اختبار أداء مكونات Jira الإضافية من خلال الخدمات التي يتم تصديرها بواسطة المكون الإضافي وواجهة مستخدم Jira. بالطبع ، يمكنك فقط أخذ Selenium WebDriver وكتابة التعليمات البرمجية لاختبار واجهة مستخدم Jira. ومع ذلك ، في هذه الحالة ، عليك أن تصف كل المنطق بنفسك. على سبيل المثال ، تسجيل دخول المستخدم ، وإدخال استعلام JQL ، وإنشاء مشروع ، والتحقق من العناصر في شكل إنشاء مهمة ، وإدارة أذونات المشروع ، وما إلى ذلك. وتوفر مكتبات Atlassian طرقًا جاهزة بالفعل لذلك. علاوة على ذلك ، لا يلزم تغيير الرمز الخاص بك عند الترقية إلى إصدار جديد من Jira ، فقط خذ مكتبات Atlassian المناسبة لهذا الإصدار.
هناك ثلاث طرق لكتابة اختبارات الاندماج لـ Atlassian Jira التي توفرها Atlassian:
- تتيح لك الاختبارات السلكية اختبار الخدمات التي يصدرها المكوّن الإضافي خارجيًا. مثال على مثل هذا الاختبار هنا .
- تتطلب اختبارات التكامل تشغيل المكونات الإضافية jira-func-test-plugin و jira-testkit-plugin. تتحقق هذه الاختبارات من التشغيل الصحيح لواجهة مستخدم Jira باستخدام طلبات HTTP والاستجابات. مثال على مثل هذا الاختبار هنا .
- تختبر اختبارات كائنات الصفحة أيضًا واجهة مستخدم 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 قد أدرجوا في هذه الحزمة عددًا كبيرًا من الأمثلة مع الاختبارات لجميع المناسبات. هم في حزمة اختبارات الويب.
حظا سعيدا مع اختبار جيرا!