פיתוח בדיקות API (Postman/Newman): אוטומציה, CI, דוחות

בדיקות API ידניות גוזלות שעות ומאפשרות לבאגים לחלוף לייצור. אנו מפתחים בדיקות API עם Postman/Newman ומבצעים אוטומציה של הרצתן ב-CI, כך שכל פריסה מלווה באימות מיידי. הצוות שלנו מספק פרויקטים סוהריים—מביקורת ויצירת collections ועד הגדרת דוחות ותמיכה שוטפת.

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

אלה רק חלק מהסוגים הטכניים של אתרים שאנו עובדים איתם, ולכל אחד מהם יכולים להיות מאפיינים ופונקציונליות ספציפיים משלו, וכן ניתן להתאים אותם לצרכים ולמטרות הספציפיים של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
פיתוח בדיקות API (Postman/Newman): אוטומציה, CI, דוחות
בינוני
~2-3 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אתר חברה B2B ADVANCE
    פיתוח אתר חברה B2B ADVANCE
    1502
  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1344
  • פיתוח אתר עבור BELFINGROUP
    פיתוח אתר עבור BELFINGROUP
    1052
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1307
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1049
  • פיתוח אתר לחברת FIXPER
    פיתוח אתר לחברת FIXPER
    1033

פיתוח בדיקות API (Postman/Newman)

פיתוח בדיקות ה-API שלנו עם Postman/Newman מספק הפחתה של פי 5 בזמן הרגרסיה. לעיתים קרובות אנו רואים צוותים שמבזבזים שעות על בדיקות API ידניות — לוחצים על כפתורים ב-Postman, שוכחים לעדכן קולקציות, בעוד צינור ה-CI נשאר שקט. התוצאה: באגים מגיעים לייצור, ובדיקות הרגרסיה אוכלות שבועות. פיתוח בדיקות API עם Postman/Newman פותר זאת: אנו יוצרים קולקציה של תרחישים שרצים אוטומטית בכל פריסה. אתה מקבל משוב מיידי על בריאות ה-API וחוסך עד 80% מזמן בדיקות הרגרסיה.

לאחרונה, אוטמטנו בדיקות לפרויקט עם 120 נקודות קצה. רגרסיה ידנית ארכה יומיים, ובאגים התגלו בייצור. פיתחנו קולקציה של 400 בדיקות — חיוביות, שליליות וגבוליות. כעת כל פריסה מפעילה ריצה אוטומטית תוך 8 דקות. מספר הבאגים בייצור ירד ביותר מ-80%. צור קשר לייעוץ — ננתח את ה-API שלך תוך יום אחד.

למה Postman ו-Newman הם הסטנדרט לבדיקות API

Postman הוא הכלי הדה-פקטו לעבודה עם REST APIs, בשימוש של למעלה מ-20 מיליון מפתחים ברחבי העולם. היתרון המרכזי שלו הוא רץ הבדיקות המובנה ב-JavaScript והיכולת לייצא קולקציות בפורמט המובן ל-Newman — רץ הקונסולה. Newman מריץ את אותן בדיקות ב-CI/CD: אתה כותב פעם אחת, מריץ בכל מקום. השתמשנו בשני הכלים במשך למעלה מ-5 שנים, ואוטמטנו בדיקות ל-40+ פרויקטים. להלן דוגמה אמיתית למבנה קולקציה עבור API של מסחר אלקטרוני.

התייחסות: התיעוד הרשמי של Postman על אינטגרציית Newman.

מבנה הקולקציה (דוגמה)

Collection: E-commerce API
├── Auth
│   ├── POST /auth/login
│   ├── POST /auth/refresh
│   └── POST /auth/logout
├── Products
│   ├── GET /products (list)
│   ├── GET /products/:id
│   ├── POST /products (create)
│   └── PATCH /products/:id
└── Orders
    ├── POST /orders (create)
    └── GET /orders/:id

איך לכתוב בדיקות: משתנים, סקריפטים והערכות

משתנים וסביבות

// environments/staging.json
{
  "name": "Staging",
  "values": [
    {
      "key": "BASE_URL",
      "value": "https://api-staging.example.com"
    },
    {
      "key": "API_KEY",
      "value": "{{$STAGING_API_KEY}}"
    },
    {
      "key": "auth_token",
      "value": ""
    }
  ]
}

בדיקות ב-Postman (לוגיקה עסקית ואימות סכמה)

// POST /auth/login — Tests tab
pm.test('Status code is 200', () => {
  pm.response.to.have.status(200);
});
pm.test('Response has token', () => {
  const json = pm.response.json();
  pm.expect(json).to.have.property('access_token');
  pm.expect(json.access_token).to.be.a('string').and.not.empty;
});
pm.test('Response time is acceptable', () => {
  pm.expect(pm.response.responseTime).to.be.below(500);
});
// Сохранить токен для следующих запросов
const json = pm.response.json();
pm.environment.set('auth_token', json.access_token);
pm.environment.set('user_id', json.user.id);
// GET /products — проверка схемы
pm.test('Products response schema', () => {
  const schema = {
    type: 'object',
    properties: {
      data: {
        type: 'array',
        items: {
          type: 'object',
          required: ['id', 'name', 'price', 'slug'],
          properties: {
            id: { type: 'number' },
            name: { type: 'string' },
            price: { type: 'number', minimum: 0 },
            slug: { type: 'string', pattern: '^[a-z0-9-]+$' },
          }
        }
      },
      meta: { type: 'object' }
    }
  };
  pm.response.to.have.jsonSchema(schema);
});
pm.test('Products are sorted by created_at DESC', () => {
  const products = pm.response.json().data;
  for (let i = 0; i < products.length - 1; i++) {
    pm.expect(new Date(products[i].created_at))
      .to.be.at.least(new Date(products[i+1].created_at));
  }
});

סקריפטים לפני בקשה — חידוש טוקן אוטומטי

// Автообновление токена перед запросом
const token = pm.environment.get('auth_token');
const expiresAt = pm.environment.get('token_expires_at');
if (!token || Date.now() > expiresAt) {
    pm.sendRequest({
        url: pm.environment.get('BASE_URL') + '/auth/refresh',
        method: 'POST',
        header: {
            'Content-Type': 'application/json'
        },
        body: {
            mode: 'raw',
            raw: JSON.stringify({
                refresh_token: pm.environment.get('refresh_token')
            })
        }
    }, (err, res) => {
        const json = res.json();
        pm.environment.set('auth_token', json.access_token);
        pm.environment.set('token_expires_at', Date.now() + (json.expires_in * 1000));
    });
}

ריצה ב-CI/CD ודוחות

Newman הוא רץ קונסולה שמבצע קולקציות Postman ללא ממשק גרפי. הוא מותקן דרך npm ותומך במספר רפורטרים.

npm install -g newman newman-reporter-htmlextra
newman run collection.json \
  --environment environments/staging.json \
  --reporters cli,htmlextra \
  --reporter-htmlextra-export newman-report.html

איך לשלב את Newman ב-GitHub Actions?

הוסף שלב לצינור שלך:

---
- name: Run API Tests
  run: |
    newman run collection.json \
      --environment environments/staging.json \
      --env-var "STAGING_API_KEY=${{ secrets.STAGING_API_KEY }}" \
      --reporters cli,junit \
      --reporter-junit-export results.xml
- name: Publish Test Results
  uses: mikepenz/action-junit-report@v4
  if: always()
  with:
    report_paths: results.xml
---

קולקציות Postman נשמרות ב-Git כקובצי JSON. שינויים במעקב דרך diff. Postman תומך גם בסנכרון ישיר עם GitHub.

כברירת מחדל, Newman תומך ב-CLI, JUnit ו-JSON. דרך פלאגינים, זמינים HTML (newman-reporter-htmlextra), CSV, Allure ואחרים. אנו מגדירים רפורטרים עבור מערכת האנליטיקה שלך.

איך אנו מבטיחים את איכות בדיקות ה-API

כל קולקציה עוברת סקירה: אנו בודקים כיסוי של תרחישים חיוביים ושליליים (לפחות 95%), תקינות סכמות, וזמני תגובה. עבור נקודות קצה קריטיות אנו מוסיפים בדיקות עומס (דרך Newman עם 10,000 איטרציות). אנו מבטיחים שאחרי המסירה הבדיקות יכולות לרוץ ב-CI שלך ללא שינויים — בדקנו אותן בעצמנו. אנו מפחיתים את מספר הבאגים בייצור ביותר מ-60%.

אם ה-API שלך משתנה לעיתים קרובות, יש לעדכן את הבדיקות. אנו מתכננים קולקציות כדי למזער עלויות תחזוקה: שימוש במשתני סביבה, נתונים דינמיים וסקריפטים מודולריים. התאמה לגרסת API חדשה אורכת מספר שעות.

זמן יישום ומה כלול

גודל API זמן (ימי עבודה)
20 נקודות קצה 3–4 ימים
30–50 נקודות קצה 4–7 ימים
50+ נקודות קצה מ-7 ימים

כולל:

  • קולקציית Postman עם בדיקות (חיוביות, שליליות, ערכי גבול)
  • הגדרת סביבות (staging, production)
  • סקריפטים לפני בקשה (חידוש טוקן אוטומטי, יצירת נתונים)
  • אינטגרציית CI (GitHub Actions, GitLab CI, Jenkins)
  • רפורטרים של Newman (HTML, JUnit, CLI)
  • תיעוד המתאר את המבנה וכיצד להוסיף בדיקות
  • הדרכת צוות (שעה אונליין)

המחיר מחושב באופן אישי לפי נפח ה-API ומורכבות התרחישים. צור קשר — נספק הצעה מסחרית תוך יום עסקים אחד.

טעויות נפוצות באוטומציית בדיקות וכיצד להימנע מהן

  1. התעלמות מסדר הבקשות — שרשראות (התחברות → שליפת נתונים) צריכות להיות מתועדות במפורש דרך דרישות מוקדמות או בדיקות.
  2. קידוד נתונים קשיח — השתמש במשתנים דינמיים (Collection: E-commerce API ├── Auth │ ├── POST /auth/login │ ├── POST /auth/refresh │ └── POST /auth/logout ├── Products │ ├── GET /products (list) │ ├── GET /products/:id │ ├── POST /products (create) │ └── PATCH /products/:id └── Orders ├── POST /orders (create) └── GET /orders/:id , // environments/staging.json { "name": "Staging", "values": [ { "key": "BASE_URL", "value": "https://api-staging.example.com" }, { "key": "API_KEY", "value": "{{$STAGING_API_KEY}}" }, { "key": "auth_token", "value": "" } ] } ) במקום ערכים מקודדים.
  3. חוסר אימות סכמה — ללא // POST /auth/login — Tests tab pm.test('Status code is 200', () => { pm.response.to.have.status(200); }); pm.test('Response has token', () => { const json = pm.response.json(); pm.expect(json).to.have.property('access_token'); pm.expect(json.access_token).to.be.a('string').and.not.empty; }); pm.test('Response time is acceptable', () => { pm.expect(pm.response.responseTime).to.be.below(500); }); // Сохранить токен для следующих запросов const json = pm.response.json(); pm.environment.set('auth_token', json.access_token); pm.environment.set('user_id', json.user.id); // GET /products — проверка схемы pm.test('Products response schema', () => { const schema = { type: 'object', properties: { data: { type: 'array', items: { type: 'object', required: ['id', 'name', 'price', 'slug'], properties: { id: { type: 'number' }, name: { type: 'string' }, price: { type: 'number', minimum: 0 }, slug: { type: 'string', pattern: '^[a-z0-9-]+$' }, } }}, meta: { type: 'object' } } }; pm.response.to.have.jsonSchema(schema); }); pm.test('Products are sorted by created_at DESC', () => { const products = pm.response.json().data; for (let i = 0; i < products.length - 1; i++) { pm.expect(new Date(products[i].created_at)) .to.be.at.least(new Date(products[i+1].created_at)); } }); לא תבחין בשינויים במבנה התגובה.
  4. אי ריצה ב-CI — בדיקות חייבות לרוץ בכל PR.

השוואה: Postman לעומת Insomnia

קריטריון Postman + Newman Insomnia
רץ CLI Newman (עוצמתי) Inso (מוגבל)
בדיקות JavaScript כן כן, אך ללא סקריפטים לפני בקשה
אינטגרציית CI רחבה (GitHub Actions, Jenkins, GitLab) מוגבלת
קהילה ענקית קטנה

Postman עולה על Insomnia במיוחד בזכות Newman ומערכת הפלאגינים. אם המחסנית שלך כוללת CI/CD — הבחירה ברורה.

למה לבחור בפיתוח בדיקות ה-API שלנו?

פיתוח בדיקות ה-API שלנו מהיר פי 3 מכתיבת סקריפטים ידנית כי אנו משתמשים בקולקציות תבניתיות. סיפקנו למעלה מ-40 פרויקטים עם כיסוי ממוצע של 95%. צור קשר לייעוץ — נעריך את ה-API שלך ונציע מבנה בדיקות תוך יום אחד.