تست API با استفاده از RestAssured و Testkube

Summarize this content to 400 words in Persian Lang
برنامه های مدرن طراحی API-first را اتخاذ می کنند که ارتباط یکپارچه بین خدمات و مشتریان را فراهم می کند. این رویکرد به طور فزاینده ای محبوب می شود، جایی که API ها قبل از اجرای سرویس های واقعی طراحی و توسعه می یابند. این تضمین می کند که API ها به عنوان شهروندان درجه یک رفتار می شوند و ثبات، قابلیت استفاده مجدد و مقیاس پذیری را تقویت می کنند.
اطمینان از قابلیت اطمینان و در دسترس بودن این APIها بسیار مهم است، زیرا آنها ستون فقرات فرآیندهای تجاری حیاتی هستند. تست API به اعتبارسنجی این سرویسها و اطمینان از عملکرد آنها در حد انتظار و مطابقت با استانداردهای تعیینشده کمک میکند.
با در نظر گرفتن اکوسیستم جاوا، یکی از ابزارهای محبوب برای آزمایش API ها RestAssured است. RestAssure که برای اکوسیستم جاوا طراحی شده است یک ابزار محبوب برای تست API است. با این حال، مدیریت و اجرای این تست ها با حرکت به سمت برنامه های کاربردی کانتینری پیچیده است.
در این پست، این چالش ها را بررسی می کنیم و نحوه استفاده از RestAssured با Testkube برای تست API را یاد می گیریم.
مطمئن باش
RestAssured یک ابزار جاوا برای آزمایش API ها با استفاده از کتابخانه های جاوا است. به خوبی با ابزارهای ساخت مانند Maven و Gradle ادغام می شود و کار با آن را آسان می کند. با اجازه دادن به توسعه دهندگان برای ارسال درخواست های HTTP ساده و تمرکز صرفاً بر روی آزمایش API بدون نگرانی در مورد چیز دیگری، تست اتوماسیون API ها را امکان پذیر می کند.
در زیر برخی از ویژگی های قابل توجه RestAssured آورده شده است:
RestAssured به راحتی با سایر چارچوبهای آزمایشی مانند JUnit و TestNG ادغام میشود و گنجاندن تستهای API را همراه با سایر تستهای خودکار آسانتر میکند.
از تمام روش های HTTP پشتیبانی می کند و شما را قادر می سازد تا عملکردهای مبتنی بر CRUD را آزمایش کنید.
از XML و JSON پشتیبانی خارج از جعبه دارد. این بدان معناست که می توانید از ویژگی هایی مانند XMLPath و JSONPath برای استخراج متغیرها از پاسخ ها استفاده کنید.
مجموعه ای قوی از روش های ادعایی برای اعتبارسنجی پاسخ ها وجود دارد.
می توانید اطلاعات بیشتری در مورد RestAssured در اینجا بخوانید.
چالش های استفاده از RestAssured در Kubernetes
RestAssured یک ابزار قدرتمند برای آزمایش API ها در خطوط لوله CI و محیط های محلی است. با این حال، اجرای این تست ها در محیط Kubernetes چالش های متفاوتی دارد.
راهاندازی محیطهایی برای آزمایشهایی با وابستگیها و پیکربندیهای مورد نیاز میتواند پیچیده باشد.
مدیریت و مقیاس بندی تست ها بر اساس بار در خوشه Kubernetes می تواند چالش برانگیز باشد.
اجتناب از تداخل، حفظ ثبات و اجرای آزمایشات به صورت مجزا مشکل ساز است.
ادغام با ابزارهای CI/CD و حفظ مصنوعات و لاگ های آزمایشی می تواند یک فرآیند دردناک باشد.
بیایید ببینیم چگونه Testkube به غلبه بر این چالش ها کمک می کند.
استفاده از RestAssured با Testkube
Testkube یک چارچوب تست بومی Kubernetes است که به شما امکان میدهد گردشهای کاری آزمایشی را به روشی اعلامی و کنترلشده توسط نسخه ایجاد کنید. با اکثر ابزارهای CI/CD ادغام می شود و به شما کمک می کند تا شروع، اجرا و اعتبارسنجی تست ها را به عنوان بخشی از گردش کار خودکار خودکار کنید.
Testkube به شما این امکان را می دهد که هر ابزار آزمایشی را وصل کنید و از قدرت Kubernetes استفاده کنید. این تستها، مجموعههای آزمایشی و سایر مصنوعات شما را به Kubernetes CRD تبدیل میکند و به شما امکان میدهد آنها را بهطور اعلامی مدیریت کنید.
با Testkube، میتوانید گردشهای آزمایشی را ایجاد کنید که شامل همه چیز از تهیه مؤلفههای زیرساخت لازم گرفته تا ادغام یکپارچه با سایر ابزارهای آزمایشی و هماهنگ کردن آزمایشهای پیچیده است. برای کسب اطلاعات بیشتر به مستندات گردش کار تست ما مراجعه کنید.
بیایید نحوه استفاده از RestAssured با Testkube را برای تست API بررسی کنیم. ما یک گردش کار تست با استفاده از Gradle ایجاد می کنیم و تست های RestAssure را در آن ادغام می کنیم. این مخزن شامل تمام فایل های مورد نیاز برای این مثال است.
پیش نیازها
پس از ایجاد پیش نیازها، باید یک خوشه Kubernetes هدف را با یک عامل Testkube پیکربندی کنید.
ایجاد یک گردش کار آزمایشی
به برگه Test Workflows بروید و روی “Add a new test workflow” کلیک کنید.
این سه گزینه را در اختیار شما قرار می دهد:
ایجاد از ابتدا – از ویزارد برای ایجاد یک گردش کار آزمایشی استفاده کنید.
از یک مثال شروع کنید – از نمونه های k6، سرو و نمایشنامه نویس موجود استفاده کنید
واردات از یامل – گردش کار تست خود را وارد کنید.
ما گزینه “ایجاد از ابتدا” را برای ایجاد این گردش کار انتخاب می کنیم.
یک نام برای گردش کار وارد کنید و نوع آن را Gradle انتخاب کنید.
دستور run را ارائه دهید. در این مورد، ما ارائه می دهیم gradlew test
یک نسخه Gradle ارائه دهید، ما استفاده خواهیم کرد 8.5.0-jdk11
در صفحه بعدی، منبع فایل تست را ارائه کنید. این می تواند یک Git Repo، یک رشته یا یک فایل باشد. در این مورد، ما از یک مخزن Git استفاده خواهیم کرد.
در صفحه بعدی، فایل مشخصات yaml را تولید کرده و خروجی را نمایش می دهد.
kind: TestWorkflow
apiVersion: testworkflows.testkube.io/v1
metadata:
name: gradle-restassured
namespace: testkube
labels:
test-workflow-templates: “yes”
spec:
use:
– name: official–gradle–beta
config:
run: ./gradlew test
version: 8.5.0-jdk11
content:
git:
uri: https://github.com/kubeshop/testkube-examples.git
revision: main
paths:
– RestAssured Test Using Gradle
container:
workingDir: /data/repo/RestAssured Test Using Gradle
steps:
– artifacts:
workingDir: /data/repo/RestAssured Test Using Gradle/app/build/
paths:
– ‘**/*’
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
فایل yaml خود توضیحی است زیرا جزئیاتی را که در yaml ارائه کردهاید فهرست میکند. ما پارامترهای اضافی را برای مصنوعات اضافه کرده ایم که گزارش های تولید شده توسط RestAssured را جمع آوری کرده و آنها را ذخیره می کند.
در زیر فایل تست RestAssured آمده است که آنچه را که در حال آزمایش هستیم توضیح می دهد.
package org.example;
import io.restassured.RestAssured;
import io.restassured.response.Response;
import org.junit.jupiter.api.Test;
import static io.restassured.RestAssured.*;
import static org.hamcrest.Matchers.*;
public class ApiTest {
@Test
public void testGetEndpoint() {
RestAssured.baseURI = “https://jsonplaceholder.typicode.com”;
given().
when().
get(“/posts/1”).
then().
statusCode(200).
body(“userId”, equalTo(1)).
body(“id”, equalTo(1)).
body(“title”, not(empty())).
body(“body”, not(empty()));
}
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
این تست پاسخ را از https://jsonplaceholder.typicode.com بررسی میکند و اگر پاسخ را تأیید میکند.
مخزن حاوی فایلهای دیگری از جمله مراحل تست و یک تست اجراست که حاوی کدهای مرتبط برای اجرای تست RestAssured با استفاده از Gradle است.
برای ایجاد گردش کار آزمایشی، روی «ایجاد» کلیک کنید.
اجرای گردش کار تست
پس از آماده شدن گردش کار، گردش کار آزمایشی جدید ایجاد شده را روی صفحه مشاهده خواهید کرد. روی آن کلیک کنید و روی Run Now کلیک کنید تا گردش کار شروع شود.
گردش کار را به همراه گزارشهای بلادرنگ هر مرحله مشاهده خواهید کرد.
نتیجه آزمایش را بر اساس اجرای آزمایش خواهید دید. در این صورت، قبولی آزمون را خواهید دید.
از آنجایی که ما مصنوعات را برای این کار پیکربندی کردهایم، میتوانید به برگه مصنوعات بروید و به گزارشهای تولید شده توسط RestAssured نگاه کنید. Testkube این گزارش ها را برای هر اجرا ذخیره می کند و تجزیه و تحلیل تست ها را آسان تر می کند.
این یک نسخه نمایشی ساده از ایجاد یک گردش کار تست RestAssured با استفاده از Gradle برای تست Kubernetes بود. برای استفاده بیشتر از گردش کار آزمایشی، می توانید گردش کار سفارشی ایجاد کرده و آنها را به Testkube وارد کنید.
خلاصه
در این پست به نحوه محبوب شدن اولین رویکرد طراحی API پرداختیم. بسیاری از برنامه های جاوا نیز از این اصل طراحی استفاده می کنند و ابزارهایی مانند RestAssured در آزمایش API ها محبوبیت پیدا می کنند. ما همچنین RestAssured و پیچیدگی های اجرای آن در Kubernetes را بررسی کردیم.
سپس دیدیم که چگونه با استفاده از RestAssured با Testkube، میتوانید یک گردش کار سرتاسر برای آزمایش API با استفاده از قدرت Kubernetes ایجاد کنید.
برای کسب اطلاعات بیشتر در مورد سایر ابزارهای آزمایشی که می توانید با آنها ادغام کنید، از وب سایت Testkube دیدن کنید. اگر با چیزی مشکل دارید، می توانید یک یادداشت را در انجمن فعال Slack ما ارسال کنید.
برنامه های مدرن طراحی API-first را اتخاذ می کنند که ارتباط یکپارچه بین خدمات و مشتریان را فراهم می کند. این رویکرد به طور فزاینده ای محبوب می شود، جایی که API ها قبل از اجرای سرویس های واقعی طراحی و توسعه می یابند. این تضمین می کند که API ها به عنوان شهروندان درجه یک رفتار می شوند و ثبات، قابلیت استفاده مجدد و مقیاس پذیری را تقویت می کنند.
اطمینان از قابلیت اطمینان و در دسترس بودن این APIها بسیار مهم است، زیرا آنها ستون فقرات فرآیندهای تجاری حیاتی هستند. تست API به اعتبارسنجی این سرویسها و اطمینان از عملکرد آنها در حد انتظار و مطابقت با استانداردهای تعیینشده کمک میکند.
با در نظر گرفتن اکوسیستم جاوا، یکی از ابزارهای محبوب برای آزمایش API ها RestAssured است. RestAssure که برای اکوسیستم جاوا طراحی شده است یک ابزار محبوب برای تست API است. با این حال، مدیریت و اجرای این تست ها با حرکت به سمت برنامه های کاربردی کانتینری پیچیده است.
در این پست، این چالش ها را بررسی می کنیم و نحوه استفاده از RestAssured با Testkube برای تست API را یاد می گیریم.
مطمئن باش
RestAssured یک ابزار جاوا برای آزمایش API ها با استفاده از کتابخانه های جاوا است. به خوبی با ابزارهای ساخت مانند Maven و Gradle ادغام می شود و کار با آن را آسان می کند. با اجازه دادن به توسعه دهندگان برای ارسال درخواست های HTTP ساده و تمرکز صرفاً بر روی آزمایش API بدون نگرانی در مورد چیز دیگری، تست اتوماسیون API ها را امکان پذیر می کند.
در زیر برخی از ویژگی های قابل توجه RestAssured آورده شده است:
- RestAssured به راحتی با سایر چارچوبهای آزمایشی مانند JUnit و TestNG ادغام میشود و گنجاندن تستهای API را همراه با سایر تستهای خودکار آسانتر میکند.
- از تمام روش های HTTP پشتیبانی می کند و شما را قادر می سازد تا عملکردهای مبتنی بر CRUD را آزمایش کنید.
- از XML و JSON پشتیبانی خارج از جعبه دارد. این بدان معناست که می توانید از ویژگی هایی مانند XMLPath و JSONPath برای استخراج متغیرها از پاسخ ها استفاده کنید.
- مجموعه ای قوی از روش های ادعایی برای اعتبارسنجی پاسخ ها وجود دارد.
می توانید اطلاعات بیشتری در مورد RestAssured در اینجا بخوانید.
چالش های استفاده از RestAssured در Kubernetes
RestAssured یک ابزار قدرتمند برای آزمایش API ها در خطوط لوله CI و محیط های محلی است. با این حال، اجرای این تست ها در محیط Kubernetes چالش های متفاوتی دارد.
- راهاندازی محیطهایی برای آزمایشهایی با وابستگیها و پیکربندیهای مورد نیاز میتواند پیچیده باشد.
- مدیریت و مقیاس بندی تست ها بر اساس بار در خوشه Kubernetes می تواند چالش برانگیز باشد.
- اجتناب از تداخل، حفظ ثبات و اجرای آزمایشات به صورت مجزا مشکل ساز است.
- ادغام با ابزارهای CI/CD و حفظ مصنوعات و لاگ های آزمایشی می تواند یک فرآیند دردناک باشد.
بیایید ببینیم چگونه Testkube به غلبه بر این چالش ها کمک می کند.
استفاده از RestAssured با Testkube
Testkube یک چارچوب تست بومی Kubernetes است که به شما امکان میدهد گردشهای کاری آزمایشی را به روشی اعلامی و کنترلشده توسط نسخه ایجاد کنید. با اکثر ابزارهای CI/CD ادغام می شود و به شما کمک می کند تا شروع، اجرا و اعتبارسنجی تست ها را به عنوان بخشی از گردش کار خودکار خودکار کنید.
Testkube به شما این امکان را می دهد که هر ابزار آزمایشی را وصل کنید و از قدرت Kubernetes استفاده کنید. این تستها، مجموعههای آزمایشی و سایر مصنوعات شما را به Kubernetes CRD تبدیل میکند و به شما امکان میدهد آنها را بهطور اعلامی مدیریت کنید.
با Testkube، میتوانید گردشهای آزمایشی را ایجاد کنید که شامل همه چیز از تهیه مؤلفههای زیرساخت لازم گرفته تا ادغام یکپارچه با سایر ابزارهای آزمایشی و هماهنگ کردن آزمایشهای پیچیده است. برای کسب اطلاعات بیشتر به مستندات گردش کار تست ما مراجعه کنید.
بیایید نحوه استفاده از RestAssured با Testkube را برای تست API بررسی کنیم. ما یک گردش کار تست با استفاده از Gradle ایجاد می کنیم و تست های RestAssure را در آن ادغام می کنیم. این مخزن شامل تمام فایل های مورد نیاز برای این مثال است.
پیش نیازها
پس از ایجاد پیش نیازها، باید یک خوشه Kubernetes هدف را با یک عامل Testkube پیکربندی کنید.
ایجاد یک گردش کار آزمایشی
به برگه Test Workflows بروید و روی “Add a new test workflow” کلیک کنید.
این سه گزینه را در اختیار شما قرار می دهد:
- ایجاد از ابتدا – از ویزارد برای ایجاد یک گردش کار آزمایشی استفاده کنید.
- از یک مثال شروع کنید – از نمونه های k6، سرو و نمایشنامه نویس موجود استفاده کنید
- واردات از یامل – گردش کار تست خود را وارد کنید.
ما گزینه “ایجاد از ابتدا” را برای ایجاد این گردش کار انتخاب می کنیم.
- یک نام برای گردش کار وارد کنید و نوع آن را Gradle انتخاب کنید.
- دستور run را ارائه دهید. در این مورد، ما ارائه می دهیم
gradlew test
- یک نسخه Gradle ارائه دهید، ما استفاده خواهیم کرد
8.5.0-jdk11
در صفحه بعدی، منبع فایل تست را ارائه کنید. این می تواند یک Git Repo، یک رشته یا یک فایل باشد. در این مورد، ما از یک مخزن Git استفاده خواهیم کرد.
در صفحه بعدی، فایل مشخصات yaml را تولید کرده و خروجی را نمایش می دهد.
kind: TestWorkflow
apiVersion: testworkflows.testkube.io/v1
metadata:
name: gradle-restassured
namespace: testkube
labels:
test-workflow-templates: "yes"
spec:
use:
- name: official--gradle--beta
config:
run: ./gradlew test
version: 8.5.0-jdk11
content:
git:
uri: https://github.com/kubeshop/testkube-examples.git
revision: main
paths:
- RestAssured Test Using Gradle
container:
workingDir: /data/repo/RestAssured Test Using Gradle
steps:
- artifacts:
workingDir: /data/repo/RestAssured Test Using Gradle/app/build/
paths:
- '**/*'
فایل yaml خود توضیحی است زیرا جزئیاتی را که در yaml ارائه کردهاید فهرست میکند. ما پارامترهای اضافی را برای مصنوعات اضافه کرده ایم که گزارش های تولید شده توسط RestAssured را جمع آوری کرده و آنها را ذخیره می کند.
در زیر فایل تست RestAssured آمده است که آنچه را که در حال آزمایش هستیم توضیح می دهد.
package org.example;
import io.restassured.RestAssured;
import io.restassured.response.Response;
import org.junit.jupiter.api.Test;
import static io.restassured.RestAssured.*;
import static org.hamcrest.Matchers.*;
public class ApiTest {
@Test
public void testGetEndpoint() {
RestAssured.baseURI = "https://jsonplaceholder.typicode.com";
given().
when().
get("/posts/1").
then().
statusCode(200).
body("userId", equalTo(1)).
body("id", equalTo(1)).
body("title", not(empty())).
body("body", not(empty()));
}
}
این تست پاسخ را از https://jsonplaceholder.typicode.com بررسی میکند و اگر پاسخ را تأیید میکند.
مخزن حاوی فایلهای دیگری از جمله مراحل تست و یک تست اجراست که حاوی کدهای مرتبط برای اجرای تست RestAssured با استفاده از Gradle است.
برای ایجاد گردش کار آزمایشی، روی «ایجاد» کلیک کنید.
اجرای گردش کار تست
پس از آماده شدن گردش کار، گردش کار آزمایشی جدید ایجاد شده را روی صفحه مشاهده خواهید کرد. روی آن کلیک کنید و روی Run Now کلیک کنید تا گردش کار شروع شود.
گردش کار را به همراه گزارشهای بلادرنگ هر مرحله مشاهده خواهید کرد.
نتیجه آزمایش را بر اساس اجرای آزمایش خواهید دید. در این صورت، قبولی آزمون را خواهید دید.
از آنجایی که ما مصنوعات را برای این کار پیکربندی کردهایم، میتوانید به برگه مصنوعات بروید و به گزارشهای تولید شده توسط RestAssured نگاه کنید. Testkube این گزارش ها را برای هر اجرا ذخیره می کند و تجزیه و تحلیل تست ها را آسان تر می کند.
این یک نسخه نمایشی ساده از ایجاد یک گردش کار تست RestAssured با استفاده از Gradle برای تست Kubernetes بود. برای استفاده بیشتر از گردش کار آزمایشی، می توانید گردش کار سفارشی ایجاد کرده و آنها را به Testkube وارد کنید.
خلاصه
در این پست به نحوه محبوب شدن اولین رویکرد طراحی API پرداختیم. بسیاری از برنامه های جاوا نیز از این اصل طراحی استفاده می کنند و ابزارهایی مانند RestAssured در آزمایش API ها محبوبیت پیدا می کنند. ما همچنین RestAssured و پیچیدگی های اجرای آن در Kubernetes را بررسی کردیم.
سپس دیدیم که چگونه با استفاده از RestAssured با Testkube، میتوانید یک گردش کار سرتاسر برای آزمایش API با استفاده از قدرت Kubernetes ایجاد کنید.
برای کسب اطلاعات بیشتر در مورد سایر ابزارهای آزمایشی که می توانید با آنها ادغام کنید، از وب سایت Testkube دیدن کنید. اگر با چیزی مشکل دارید، می توانید یک یادداشت را در انجمن فعال Slack ما ارسال کنید.