
لنتحدث عن كيفية إجراء اختبارات التكامل لخادم 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 قد أدرجوا في هذه الحزمة عددًا كبيرًا من الأمثلة مع الاختبارات لجميع المناسبات. هم في حزمة اختبارات الويب.
حظا سعيدا مع اختبار جيرا!