این آموزش مقدمه ای بر تست API با استفاده از چارچوب کاراته است. با ساختار اسکریپت تست کاراته و مراحل ساخت اولین اسکریپت تست آشنا شوید:

API مخفف عبارت Application Programming Interface است. به زبان ساده، می‌توانیم آن را به عنوان یک واسطه نرم‌افزاری تعریف کنیم که امکان ارتباط بین برنامه‌ها را فراهم می‌کند.

ما به تست API نیاز داریم زیرا:

  • نتایج سریع‌تر منتشر می‌شوند، بنابراین دیگر منتظر نمانید تا ببینید آیا API خوب کار می‌کند یا خیر.
  • با پاسخ سریع‌تر، استقرار این APIها نیز سریع‌تر می‌شود و از این رو امکان چرخش سریع را فراهم می‌کند.
  • تشخیص زودهنگام شکست، حتی قبل از ایجاد رابط کاربری برنامه، به ما اجازه دهید خطرات را کاهش دهیم و عیوب را اصلاح کنیم.
  • تحویل در مقیاس بزرگ در مدت زمان کوتاه تری امکان پذیر است.

برای اینکه بتوانیم روی تست API کار کنیم، ابزارهای مختلفی مانند Postman، Mocha و Chai در بازار موجود است. اینها نتایج خوب و استفاده مؤثری را برای آزمایش APIها نشان داده اند، با این حال، اینها به شدت تحت تأثیر کد هستند. برای اینکه بتوانید از اینها استفاده کنید، باید از نظر فنی سالم و با زبان های برنامه نویسی آشنا باشید.

چارچوب کاراته این مشکل ابزارهای نرم افزاری قبلی خود را به زیبایی حل می کند.

چارچوب کاراته چیست

کاراته؟ بیایید کاراته صحبت کنیم. اون از ژاپنه؟ شما چی فکر میکنید؟ شاید همان بروس بزرگ باشداین اسکریپت تست پایه کاراته.

سناریو:

ما یک API را با این URL آزمایش خواهیم کرد.

مسیر: api/users/2

روش: GET

و باید اعتبارسنجی کنیم ، آیا درخواست یک کد موفقیت آمیز را برمی گرداند ( 200) یا نه.

به زبان ساده، ما فقط یک نمونه API را آزمایش می کنیم تا ببینیم آیا با موفقیت اجرا می شود یا خیر.

توجه: ما در حال گرفتن نمونه API هستیم که برای آزمایش در دسترس است. شما می توانید هر مسیری را انتخاب کنید یا می توانید به API خود مراجعه کنید.

برای منبع اینجا را کلیک کنید.

#5) اکنون گام بعدی ما ایجاد یک است. فایل .feature .

همانطور که در قسمت مقدمه بحث شد، .feature file خاصیتی است که از Cucumber به ارث رسیده است. در این فایل، سناریوهای آزمایشی را که باید برای انجام تست API اجرا شوند، می نویسیم.

  • به پوشه src/test/java در پروژه خود بروید.

  • روی آن کلیک راست کرده و یک فایل جدید ایجاد کنید - userDetails.feature. سپس بر روی دکمه Finish کلیک کنید.

اکنون فایل زیر را در زیر پوشه src/test/java مشاهده خواهید کرد. 3>

نماد رنگی سبز شبیه .feature fi le در Cucumber است که به تازگی ایجاد کردیم.

  • هنگامی که فایل ایجاد شد، اکنون سناریوهای آزمایشی خود را می نویسیم که در بخش بعدی مورد بحث قرار خواهند گرفت.

#6) از آنجایی که ما سناریو وفایل خالی . feature آماده است، حالا بیایید با اولین اسکریپت شروع کنیم. اجازه دهید شروع به کدنویسی کنیم

خط کد زیر را در فایل userDetails.feature که در مرحله 5 ایجاد کردیم بنویسیم:

 Feature: fetching User Details Scenario: testing the get call for User Details Given url '//reqres.in/api/users/2' When method GET Then status 200

بیایید سعی کنیم درک کنیم مؤلفه هایی که در فایل بالا نوشته شده اند:

  • ویژگی: کلید واژه نام ویژگی مورد آزمایش را توضیح می دهد.
  • زمینه: این یک بخش اختیاری است که به عنوان یک بخش پیش نیاز در نظر گرفته می شود. این می تواند برای تعریف آنچه برای آزمایش API مورد نیاز است استفاده شود. این شامل HEADER، URL & گزینه های PARAM .
  • سناریو: هر فایل ویژگی که مشاهده می کنید حداقل یک ویژگی خواهد داشت (اگرچه می تواند چند سناریو را ارائه دهد) . این توصیف مورد آزمایش است.
  • با توجه: این مرحله ای است که قبل از انجام هر مرحله آزمایشی دیگری باید اجرا شود. این یک اقدام اجباری است که باید انجام شود.
  • When: شرطی را مشخص می کند که برای انجام مرحله آزمایشی بعدی باید رعایت شود.
  • سپس: به ما می گوید در صورتی که شرط ذکر شده در When برآورده شود، چه اتفاقی باید بیفتد.

توجه: همه کلیدواژه های ذکر شده در بالا هستند از زبان Gherkins اینها روش استاندارد نوشتن اسکریپت های آزمایشی با استفاده از Cucumber هستند.

و برخی از کلمات دیگر استفاده شده در فایل ویژگی عبارتند از:

  • 200: این کد وضعیت/پاسخی است که ما هستیمانتظار می رود (برای لیست کدهای وضعیت اینجا را کلیک کنید)
  • GET: این روش API مانند POST، PUT و غیره است.

امیدواریم این توضیح باشد. درک آن برای شما آسان بود اکنون می‌توانید به آنچه در فایل بالا نوشته شده است ارتباط برقرار کنید.

اکنون باید یک فایل TestRunner.java ایجاد کنیم

همانطور که در بالا توضیح داده شد. بخش، Cucumber به یک فایل Runner نیاز دارد که برای اجرای فایل .feature که حاوی سناریوهای آزمایش است، مورد نیاز است.

  • رفتن به پوشه src/test/java در پروژه خود

  • روی آن کلیک راست کرده و یک فایل جاوا جدید ایجاد کنید: TestRunner.java
  • هنگامی که فایل ایجاد شد، خطوط کد زیر را در زیر آن قرار دهید:
 import org.junit.runner.RunWith; import com.intuit.karate.junit4.Karate; @RunWith(Karate.class) public class TestRunner { }
  • Test Runner فایلی است که اکنون برای اجرای آن اجرا می شود. سناریوی مورد نظر که در مرحله 5 نوشته شده است.

#7) اکنون با هر دو فایل TestRunner.Java و آماده هستیم. userDeatils.feature. تنها کاری که برای ما باقی مانده است اجرای اسکریپت است.

  • به فایل TestRunner.java رفته و مطابق تصویر زیر روی فایل کلیک راست کنید.

  • اجرا به عنوان -> Junit Test
  • اکنون، پس از انتخاب، مشاهده خواهید کرد که مورد آزمایشی اکنون شروع شده است.
  • منتظر اجرا شدن اسکریپت تست باشید. پس از اتمام، چیزی شبیه به تصویر زیر را در پنجره خود مشاهده خواهید کرد.

  • در نهایت، می توانیم بگوییمکه ما با موفقیت اولین اسکریپت تست خود را با استفاده از چارچوب کاراته ایجاد کردیم.

#8) آخر، کاراته چارچوب همچنین یک گزارش HTML برای اجرای انجام شده ارائه می دهد.

  • رفتن به پوشه هدف -> مطمئن-گزارش-> در اینجا گزارش HTML خود را می‌بینید که می‌توانید باز کنید.

** همچنین به شما پیشنهاد می‌کنیم با استفاده از Chrome باز کنید. مرورگر برای ظاهر و احساس بهتر.

  • گزارش دنبال کردن HTML به شما نشان داده می شود که سناریوها و amp; تست که برای سناریوی مذکور اجرا شده است:

نتیجه گیری

در این آموزش به تست API، تست های مختلف پرداخته ایم. ابزارهای موجود در بازار، و اینکه چگونه چارچوب کاراته در مقایسه با همتایان خود گزینه بهتری است.

ما یک رویکرد گام به گام را برای ایجاد اولین اسکریپت تست اولیه خود دنبال کردیم. ما با ایجاد یک پروژه اساسی Maven در Eclipse IDE شروع کردیم تا یک فایل .feature ایجاد کنیم که شامل تمام سناریوهای آزمایشی و یک فایل Runner برای اجرای نمونه آزمایشی ذکر شده در فایل .feature است.

در پایان چندین مرحله، می‌توانیم گزارش اجرای نتایج آزمون را مشاهده کنیم.

امیدواریم این آموزش برای مبتدیان در یادگیری نحوه ساخت اولین اسکریپت تست خود با استفاده از چارچوب کاراته مفید بوده باشد. و تست API را انجام دهید. این گام به گام دقیق استرویکرد یک روش فوق‌العاده برای اجرا و اجرای آزمایش‌های مختلف بر روی API است.

NEXT>>

لی این را در اوقات فراغت خود توسعه داده بود.

اگرچه مایلیم به ریشه های جالب کاراته بپردازیم، در حال حاضر، اجازه دهید در مورد ابزار کاراته که توسعه داده شده است صحبت کنیم. توسط پیتر توماس ، یکی از ابزارهای عالی که به کمک آزمایش کنندگان API می آید.

چارچوب کاراته از سبک Cucumber در نوشتن برنامه پیروی می کند که از رویکرد BDD پیروی می کند. درک نحو توسط غیر برنامه نویسان آسان است. و این چارچوب تنها ابزار تست API است که اتوماسیون API و تست عملکرد را در یک ابزار مستقل ترکیب کرده است.

این امکان را برای کاربران فراهم می‌کند تا موارد تست را به صورت موازی اجرا کنند و JSON & XML را بررسی می کند.

با این اطلاعات، نکات کلیدی خاصی را می توان برای درک بیشتر ابزار کاراته با جزئیات استنباط کرد:

  • به جای آن، کاراته یک چارچوب تست BDD است. از یک TDD.
  • این برنامه به گونه ای طراحی شده است که برای غیر برنامه نویسان آسان باشد. این ویژگی یک تغییر دهنده بازی است زیرا امکان استفاده و دسترسی بیشتر را برای بسیاری از افراد صرف نظر از سابقه فنی یا ظرفیت آنها فراهم می کند.
  • از فایل ویژگی Cucumber و زبان Gherkins برای نوشتن آزمون استفاده می کند. درک بسیار آسان است.

همه این ویژگی ها آن را به یکی از مطلوب ترین ابزارهای اتوماسیون موجود امروز تبدیل می کند.

History Of Karate Framework

Created by ' Peter Thomas' در سال 2017، این نرم افزار قصد دارد آزمایش کندقابلیت هایی که به راحتی برای همه در دسترس است. این به زبان جاوا نوشته شده بود و اکثر مردم انتظار داشتند که فایل های آن نیز به یک زبان باشد، اما خوشبختانه اینطور نیست.

بلکه از فایل های Gherkins استفاده می کند که نتیجه ارتباط آن با چارچوب خیار. نرم افزار اتوماسیون پسوند Cucumber است، بنابراین استفاده از فایل Gherkins در عملکرد آن به ارث می رسد. تفاوت بزرگ بین این دو این است که کاراته در حین آزمایش از جاوا استفاده نمی کند، اما Cucumber از جاوا استفاده نمی کند.

این دقیقاً دلیلی است که چرا به غیر برنامه نویسان توجه می کند زیرا نحو Gherkins بسیار خوانا و جامع است. به همین دلیل است که کاراته برای ورود به دنیای تست API خودکار مناسب‌ترین و توصیه می‌شود.

در زیر برخی از ویژگی‌های چارچوب تست کاراته آمده است:>

  • از زبان Gherkins با درک آسان استفاده می کند.
  • این زبان مانند جاوا به دانش برنامه نویسی فنی نیاز ندارد.
  • این زبان بر اساس استانداردهای محبوب Cucumber است.
  • 5 ایجاد یک چارچوب آسان است.
  • آزمایش موازی عملکرد اصلی است که توسط خود کاراته ارائه می شود، بنابراین نیازی نیست به Maven، Gradle و غیره وابسته باشیم.
  • UI برای اشکال زدایی تست.
  • فراخوانی یک فایل ویژگی از یک فایل دیگر.
  • از تست درایور داده که در داخل ساخته شده است پشتیبانی می کند، بنابراین نیازی به وابستگی به چارچوب های خارجی نیست.
  • استراحت داخلی داخلیگزارش ها. به علاوه، می‌توان آن را برای گزارش‌های رابط کاربری بهتر و وضوح بیشتر با Cucumber ادغام کرد.
  • پشتیبانی داخلی برای تغییر پیکربندی در محیط‌های آزمایشی مختلف (QA، Stage، Prod، Pre-Prod) ارائه می‌کند.
  • پشتیبانی یکپارچه از یکپارچه سازی CI/CD که می تواند مفید باشد.
  • قابلیت رسیدگی به تماس های مختلف HTTP:
    • پشتیبانی از سوکت وب
    • درخواست SOAP
    • HTTP
    • بررسی کوکی های مرورگر
    • HTTPS
    • داده های فرم HTML
    • درخواست XML

    مقایسه کاراته با اطمینان خاطر

    مطمئن باشید : این یک کتابخانه مبتنی بر جاوا برای آزمایش خدمات REST است. از زبان جاوا برای نوشتن خطوط کد استفاده می کند. این به آزمایش دسته‌های درخواستی متعدد کمک می‌کند، که بیشتر به تأیید ترکیب‌های منطقی مختلف تجاری منجر می‌شود.

    چارچوب کاراته : ابزاری مبتنی بر خیار/غوره، که برای آزمایش SOAP و SOAP استفاده می‌شود. خدمات REST.

    جدول زیر چند تفاوت برجسته دیگر را بین Rest-Assured & چارچوب کاراته:

    S.No Basis چارچوب کاراته REST-Ssured
    1 زبان از ترکیب خیار و غوره استفاده می کند از زبان جاوا استفاده می کند
    2 اندازه کد معمولاً خط کد کمتر است، زیرا از ساختار خیار مانند پیروی می کند خط کد بیشتر است زیرا شاملاستفاده از زبان جاوا
    3 دانش فنی مورد نیاز غیر برنامه نویسان می توانند به راحتی بنویسند کد Gherkins دانش فنی برای نوشتن کد جاوا مورد نیاز است
    4 Data-Driven Testing نیاز به استفاده از TestNG یا معادل آن برای پشتیبانی از همان برچسب های داخلی را می توان برای پشتیبانی از تست داده استفاده کرد
    5 آیا پشتیبانی تماس SOAP را ارائه می دهد بله، ارائه می کند فقط به درخواست REST مربوط می شود
    6 تست موازی بله، آزمایش موازی به راحتی با تولید گزارش موازی پشتیبانی می شود بیش از حد نه تا حد زیادی. اگرچه افراد سعی کرده اند این کار را انجام دهند، اما میزان شکست بیشتر از میزان موفقیت است
    7 گزارش گزارش داخلی را فراهم می کند، بنابراین نیازی به وابستگی به افزونه های خارجی ندارد. حتی می‌توانیم آن را با افزونه گزارش‌دهی Cucumber برای رابط کاربری بهتر ادغام کنیم. باید به افزونه‌های خارجی مانند Junit، TestNG وابسته باشید
    8 پشتیبانی CSV برای داده های خارجی بله، از Karate 0.9.0 خیر، باید از کد جاوا یا کتابخانه استفاده کنید
    9 اتوماسیون رابط کاربری وب بله، از Karate 0.9.5 اتوماسیون Web-UI امکان پذیر است خیر، پشتیبانی نمی شود
    10 Sample GET Given param val1 = ‘name1’

    And param val2 = ‘name2’

    And path ‘somelocation’

    When method get

    Then match response contains ‘OKAY’

    given().

    param("val1", "name1").

    param("val2", "name2").

    when().

    get("/some\location").

    then().

    body(containsString("OKAY"));

    از این رو، همانطور که توسط با تفاوت های بالا، می توان با اطمینان گفت که کاراته یکی از ساده ترین کارهایی است که هر کسی می تواند انجام دهد.

    ابزارهای مورد نیاز برای کار با چارچوب کاراته

    اکنون، از آنجایی که ما دانش اولیه خود را در مورد در چارچوب کاراته، اجازه دهید به فرآیندها و ابزارهای مورد نیاز در تنظیم محیط کاراته نگاه کنیم.

    #1) Eclipse

    Eclipse یک محیط توسعه یکپارچه است که استفاده می شود. در زمینه برنامه نویسی کامپیوتر بیشتر برای برنامه نویسی جاوا استفاده می شود. همانطور که قبلا ذکر شد، کاراته به زبان جاوا نوشته شده است، بنابراین منطقی تر است که چرا Eclipse IDE پیشرو برای نرم افزار تست API است. دلیل دیگر این است که یک ابزار منبع باز است، و این یک دلیل قوی برای انتخاب این ابزار است.

    توجه: ما حتی می‌توانیم از IntelliJ، Visual Studio و سایر موارد مختلف استفاده کنیم. ویرایشگرهای موجود در بازار.

    #2) Maven

    این یک ابزار اتوماسیون ساخت است که عمدتاً برای ساخت پروژه های جاوا استفاده می شود. این یکی از راه های راه اندازی یک محیط کاراته و نوشتن کد است. برای تنظیم Eclipse خود با الزامات Maven، می‌توانید برای نصب Maven اینجا را کلیک کنید.

    هنگام کار در Maven، از وابستگی‌های Maven استفاده کنید که به شما در پشتیبانی از Karate Framework کمک می‌کند.

    موارد زیر وابستگی ها با Maven در pom.xml استفاده خواهند شد.

       com.intuit.karate karate-apache 0.9.5 test   com.intuit.karate karate-junit4 0.9.5 test  

    توجه: ممکن است آخرین نسخه هادر مخزن Maven موجود باشد.

    #3) Gradle

    Gradle جایگزینی برای Maven است و می تواند با ظرفیت برابر استفاده شود. آن‌ها شباهت‌ها و تفاوت‌های خود را دارند، اما می‌توانند به همان اندازه در راه‌اندازی محیطی برای کدهای کاراته ما استفاده شوند.

    استفاده از آن آسان‌تر، انعطاف‌پذیر است و زمانی که برنامه ما نیازهای مدولارسازی و مدیریتی را داشته باشد، استفاده از آن توصیه می‌شود. یک دسته پلاگین کد راه اندازی Gradle چیزی شبیه به این است،

    testCompile 'com.intuit.karate:karate-junit4:0.6.0' testCompile 'com.intuit.karate:karate-apache:0.6.0'

    توجه: می توانید از MAVEN یا GRADLE استفاده کنید.

    #4) راه اندازی محیط جاوا در سیستم شما

    برای شروع کار با اسکریپت های Framework Karate باید محیط JDK و JRE را راه اندازی کنید.

    Structure Of Karate Test Script

    یک اسکریپت تست کاراته به دلیل داشتن پسوند ".feature" شناخته شده است. این خاصیت از خیار به ارث رسیده است. سازماندهی فایل ها در کنوانسیون جاوا نیز به همان اندازه مجاز است. شما آزاد هستید که فایل های خود را طبق قراردادهای بسته جاوا سازماندهی کنید.

    با این حال، دستورالعمل های Maven دستور می دهد که ذخیره سازی فایل های غیر جاوا به طور جداگانه انجام شود. آنها در ساختار src/test/resources انجام می شوند. و فایل‌های جاوا تحت src/main/java نگهداری می‌شوند.

    اما طبق گفته سازندگان چارچوب کاراته، آنها قویاً معتقدند که ما فایل‌های جاوا و غیر جاوا را در کنار هم نگه می‌داریم. سمت. به گفته آنها، بسیار ساده تر است که به دنبال آن باشیدفایل‌های *.java و *.feature زمانی که با هم نگهداری می‌شوند، به جای پیروی از ساختار استاندارد Maven.

    این را می‌توان به راحتی با تغییر دادن pom.xml به صورت زیر انجام داد (برای Maven):

        src/test/java  **/*.java     ...   

    در زیر طرح کلی ساختار کلی چارچوب کاراته آمده است:

    اکنون، از آنجایی که این چارچوب کاراته از فایل Runner که در Cucumber نیز برای اجرای فایل های ویژگی مورد نیاز است، بنابراین بیشتر نوشته ها از استانداردهای Cucumber پیروی می کنند.

    اما، برخلاف Cucumber، مراحل در کاراته به تعریف واضحی نیاز ندارند و ، به نوبه خود انعطاف پذیری و سهولت عملیات را افزایش می دهد. وقتی از چارچوب Cucumber پیروی می کنیم، نیازی به اضافه کردن چسب اضافی نداریم.

    کلاس Runner اکثر اوقات TestRunner.java نام دارد.

    سپس فایل TestRunner.java به شکل زیر خواهد بود:

     import com.intuit.karate.junit4.Karate; import org.junit.runner.RunWith; @RunWith(Karate.class) public class TestRunner { }

    و در مورد فایل .feature صحبت می کنیم، این فایل شامل تمام تست ها می شود. سناریوهایی که باید آزمایش شوند تا مطمئن شویم API مطابق با الزامات مورد انتظار کار می کند.

    یک فایل *.feature کلی چیزی شبیه به تصویر زیر است:

     Feature: fetching User Details Scenario: testing the get call for User Details Given url '//reqres.in/api/users/2' When method GET Then status 200

    ایجاد اولین اسکریپت تست پایه کاراته

    این بخش به شما کمک می کند تا با ایجاد اولین اسکریپت تست خود شروع کنید، که برای تبدیل API ها در قالب یک چارچوب کاراته برای شما مفید خواهد بود.

    قبل از نوشتن اسکریپت های اولیه تست کاراته،لطفاً موارد زیر را روی دستگاه خود نصب کنید:

    • Eclipse IDE
    • Maven. مسیر Maven مناسب را تنظیم کنید.
    • JDK & JRE. مسیر مناسب را تنظیم کنید.

    بیایید نگاهی به رویکرد گام به گام بیندازیم:

    #1) ایجاد یک پروژه جدید MAVEN در Eclipse Editor

    • Open Eclipse
    • روی File کلیک کنید. پروژه جدید را انتخاب کنید.

    • انتخاب پروژه Maven

    • انتخاب کنید محل Workspace.
    • Archetype را انتخاب کنید (معمولاً " Maven-archetype-quickstart 1.1 " را برای پروژه های ساده Maven انتخاب می کنیم.
    • ارائه شناسه گروه & شناسه Artifact (ما در مثال خود از مقادیر زیر استفاده کرده ایم).
      • Group ID : Karate
      • Artifact ID: KarateTestScriptsSample
    • برای تکمیل روی Finish کلیک کنید راه اندازی.

    #2) پس از ایجاد، اکنون می توانید ساختار زیر را در پنجره Project Explorer مشاهده کنید.

    #3) شامل همه وابستگی‌های شما می‌شود.

    اولین قدم ما، پس از راه‌اندازی، باید همه وابستگی‌های مورد نیاز را اضافه کنیم. برای اعدام ما همه تگ ها را در زیر POM.xml نگه می داریم (با فرض اینکه قبلاً از استفاده از POM.xml مطلع هستید).

    • POM.xml را باز کنید و کد زیر را در زیر برچسب وابستگی کپی کنید و ذخیره کنید. فایل.
      com.intuit.karate karate-apache 0.9.5 test   com.intuit.karate karate-junit4 0.9.5 test 

    برای منبع اینجا را کلیک کنید.

    #4) بیایید سناریو را طوفان فکری کنیم، چه چیزی را قرار است آزمایش کنیم

    اسکرول به بالا