Sobes.tech
Middle

Веб-сайтта 20 ар түрдүү төлөө ыкмасын кантип сынайсыз?

sobes.tech AI

AIден жооп

Тестирлөө үчүн 20 төлөм ыкмаларын колдонуу үчүн мен кеңири карашымды колдонуп, кол менен жана автоматташтырылган тестирлөөнү, ошондой эле маалыматтарга негизделген тестирлөөнү камтыган ыкмаларды колдонмокмун:

Негизги этаптар:

  1. Талаптарды түшүнүү. Ар бир төлөм ыкмасы үчүн бардык спецификацияларды изилдөө: валюта, чектөөлөр, комиссиялар, иштетүү агымдары (редиректтер, iframe жана башка), ийгиликтүү жана ийгиликсиз төлөм сценарийлери:

  2. Приоритетти аныктоо. Төлөм системаларынын колдонуу жыштыгы, бизнес үчүн маанилүүлүгү, интеграциянын кыйынчылыгы жана коркунучтарына негизделген тестирлөөнүн приоритетин белгилөө. Эң маанилүү жана кеңири тараган ыкмалар биринчи тесттелет:

  3. Тест сценарийлерин пландаштыруу. Ар бир төлөм ыкмасы үчүн тест учурларын түзүү, алардын ичинде:

    • Ийгиликтүү транзакциялар (төртүн, валюта, карталар/эсептердин түрлөрү)
    • Ийгиликсиз транзакциялар (жараксыз маалыматтар, каражаттын жетишсиздиги, банк/жүйөнүн баш тартуусу)
    • Каталар жана каталар жөнүндө билдирүүлөрдү тестирлөө
    • Браузерлер жана түзмөктөр боюнча тестирлөө (кррос-браузер, кррос-платформа)
    • Иштин натыйжалуулугун тестирлөө (төлөм барагынын жүктөө убактысы, иштетүү ылдамдыгы)
    • Коопсуздукту тестирлөө (карта маалыматтарын коргоо, коопсуздук кемчиликтери)
    • Башка системалар менен интеграцияны тестирлөө (CRM, бухгалтерия)
    • кайтаруу сценарийлери (эгер колдонулса)
  4. Тест маалыматтарын даярдоо. Ар бир төлөм ыкмасы үчүн реалдуу жана тест маалыматтарын колдонуу. Кээ бир системелер тест карталары же аккаунттарды талап кылышы мүмкүн, төлөм шлюз тарабынан берилет:

  5. Кол менен тестирлөөнү жүргүзүү.

    • Колдонуучу интерфейси жана колдонуу ыңгайлуулугун тестирлөө
    • Бардык кадамдарды кол менен текшерүү, логикалык эмес жүрүм-турумду жана көрүнүштөгү каталарды аныктоо
    • Автоматташтыруу кыйын болгон сценарийлерди тестирлөө (мисалы, эки факторлуу аутентификация менен кайра багыттоо)
  6. Автоматташтырылган тесттерди иштеп чыгуу.

    • Эң көп колдонулган жана маанилүү сценарийлердин автоматташтырылышы
    • Төлөмдөн кийин заказ статусун автоматтык текшерүү
    • Фреймворктарды (мисалы, Selenium WebDriver, Cypress, Postman/Rest Assured) жана программалоо тилдерин (Java, Python, JavaScript) колдонуу
    • Тесттерди бир мезгилде ишке ашыруу убактысын кыскартуу
    // Төлөмдүн автоматташтырылган тестинин мисалы (псеудокод)
    @Test
    public void testSuccessfulPaymentWithCreditCard() {
        // Тапшырык бетине өтүү
        orderPage.open();
        // Товардын кошулушу
        orderPage.addItems("item1", 2);
        // Төлөм бетине өтүү
        orderPage.goToPaymentPage();
        // Төлөм ыкмасын тандоо "Кредиттик карта"
        paymentPage.selectPaymentMethod("Credit Card");
        // Тесттик карта маалыматтарын киргизүү
        paymentPage.enterCardDetails("1111222233334444", "12/25", "123");
        // "Төлө" баскычын басуу
        paymentPage.clickPayButton();
        // Төлөм ийгиликтүү өткөнүн текшерүү (мисалы, URL же билдирүү аркылуу)
        assertTrue(confirmationPage.isOrderSuccessful());
        // Заказ статусун админ панелинен текшерүү (опционалдуу API аркылуу)
        String orderId = confirmationPage.getOrderId();
        Order order = api.getOrderDetails(orderId);
        assertEquals("Paid", order.getStatus());
    }
    
  7. API аркылуу тестирлөө. Эгер мүмкүн болсо, API аркылуу төлөм системалары менен интеграцияны тестирлөө, тест суроолорун жиберүү аркылуу транзакциялар түзүү, статусун текшерүү ж.б.

    # API аркылуу төлөм түзүү тестинин мисалы (псеудокод requests аркылуу)
    import requests
    
    def test_create_payment_with_paypal():
        url = "https://api.example.com/payments"
        payload = {
            "amount": 100,
            "currency": "USD",
            "payment_method": "paypal",
            "order_id": "ORD12345"
        }
        headers = {"Authorization": "Bearer <token>"}
    
        response = requests.post(url, json=payload, headers=headers)
    
        assert response.status_code == 201 # Ишке ашырылганын текшерүү
        data = response.json()
        assert "payment_id" in data
        assert data["status"] == "pending" # же күтүлгөн статус
    
        # Статусту кошумча текшерүү GET аркылуу
        # status_response = requests.get(f"{url}/{data['payment_id']}", headers=headers)
        # assert status_response.status_code == 200
        # assert status_response.json()["status"] == "successful" # ийгиликтүү болсо
    
  8. Регрессиялык тестирлөө. Төлөм тесттерин регрессиялык топтогонго киргизүү, жаңы версиялар чыгарылганда бардык интеграцияланган төлөм системелеринин иштешин текшерүү:

  9. Күзөтүү. Өндүрүштөгү мониторинг орнотуу, төлөм системелеринин көйгөйлөрүн тез аныктоо үчүн:

  10. Отчеттуулук. Табылган каталар жана тестирлөө прогресси тууралуу так документтештирүү:

Мисалдык план — 20 төлөм ыкмалары үчүн:

Төлөм ыкмасы Кол менен камтуу Автоматташтыруу камтылышы Тест сценарийлер Тест маалыматтары Статус
Visa Толук Ийгилик, CVV баш тартуу 10+ Тест карталары Ишке ашууда
Mastercard Толук Ийгилик, мөөнөт баш тартуу 10+ Тест карталары Ишке ашууда
PayPal Толук Ийгилик 8+ Тест аккаунттары Ишке ашууда
Apple Pay Толук чектелген 5+ Чын түзмөктөр Ишке ашууда
Google Pay Толук чектелген 5+ Чын түзмөктөр Ишке ашууда
... (да дагы 15 ыкма) бөлүнгөн / толук маанилүүлүккө ылайык тандалган 3-10+ ар бири ар түрдүү Ишке ашууда

Ошентип, мен деталдуу кол менен изилдөөнү эң маанилүү жана кайталанган сценарийлердин автоматташтырылышы менен айкалыштырып, чоң көлөмдөгү төлөм ыкмаларын эффективдүү тестирлөө үчүн колдонмокмун.