Thử nghiệm API có thể được thực hiện bởi Python không?

Tôi là Rahul Shetty - giảng viên QA với 15 năm kinh nghiệm với hơn 600.000 học viên QA từ 195 quốc gia trong các khóa học của tôi về Selenium, Kiểm thử phần mềm (Jira), Kiểm tra API, Cypress, Postman, Appium, Playwright, JMeter, v.v.

Tôi cũng là Giảng viên chính tại Nền tảng công nghệ giáo dục QA hàng đầu (Học viện Rahul Shetty), nơi tôi đã giúp hàng trăm nghìn sinh viên học cách kiểm tra, tự động hóa và thay đổi cuộc sống của họ bằng cách trở thành Kỹ sư tự động hóa

Mọi QA Professional đều có mong muốn được học các khóa học về Automation theo xu hướng nhưng không hiểu sao 90% trong số họ lại bó tay

Đó không phải là do thị trường thiếu các khóa học, mà là tìm được người cố vấn phù hợp có thể hướng dẫn, giảng dạy và hiểu được nhịp đập của học viên bằng nền tảng giáo dục của họ

Bản thân là một kỹ sư QA với gần hai thập kỷ kinh nghiệm trong ngành kiểm thử phần mềm, tôi hiểu tư duy của QA, cách chúng ta học tốt nhất và dựa trên kiến ​​thức và kinh nghiệm đó, tôi đã xây dựng các khóa học của mình một cách chiến lược để sinh viên của tôi nhận được lợi ích và sự nghiệp tối đa . Tôi tin rằng tôi đã bẻ khóa "công thức" để dạy các kỹ năng kiểm thử tự động hóa và tôi thực sự rất vui mừng được chia sẻ kiến ​​thức chuyên môn của mình với bạn. Tôi có thể tự tin nói rằng các khóa học trực tuyến của tôi chắc chắn là những khóa học toàn diện nhất trên thị trường

Khi tham gia các khóa học của tôi, bạn không chỉ nhận được những tài liệu học tập thiết thực nhất, cập nhật nhất, phù hợp với công việc mà còn được tiếp cận với một người cố vấn suốt đời, người đã tác động và nâng tầm sự nghiệp của hàng trăm nghìn kỹ sư QA như Bạn

Không ngày nào tôi không nhận được email thành công của sinh viên từ khắp nơi trên thế giới về việc tìm được một công việc mới, các khóa học của tôi đã thay đổi cuộc sống và sự nghiệp của họ tốt hơn như thế nào và họ được tôn trọng và đánh giá cao như thế nào tại nơi làm việc sau khi đạt được thành tựu mới.

Thử nghiệm API liên quan đến việc thử nghiệm trực tiếp các giao diện lập trình ứng dụng (API) và là một phần của thử nghiệm tích hợp để xác định xem chúng có đáp ứng mong đợi về chức năng, độ tin cậy, hiệu suất và bảo mật hay không. Vì các API thiếu GUI nên việc kiểm tra API được thực hiện ở lớp thông báo. Thử nghiệm API rất quan trọng để tự động hóa thử nghiệm vì API hiện đóng vai trò là giao diện chính cho logic ứng dụng và vì các thử nghiệm GUI khó duy trì với chu kỳ phát hành ngắn và các thay đổi thường xuyên thường được sử dụng với phát triển phần mềm Agile và DevOps

Trong blog này, chúng tôi sẽ trình bày cách bạn có thể thiết kế khung tự động hóa để kiểm tra API bằng python

điều kiện tiên quyết

  • Kiến thức làm việc về kịch bản Python
  • Kiến thức làm việc về API đang được thử nghiệm
  • IDE PyCharm
  • PyTest

Thiết lập dự án

Đầu tiên, chúng ta sẽ cần tạo một dự án Python mới với PyCharm. Nếu bạn đã biết về cách tạo Dự án Python bằng PyCharm, vui lòng chuyển sang phần tiếp theo. Hoặc bạn có thể tham khảo hướng dẫn này về cách thiết lập dự án Python đầu tiên của mình với PyCharm
https. //www. phản lực. com/help/pycharm/creating-and-running-your-first-python-project. html

Viết test case

Như bây giờ bạn đã thiết lập dự án python của mình với Pycharm, hãy tạo một tệp python mới nơi chúng tôi sẽ thêm các trường hợp thử nghiệm của mình

Vui lòng tạo một tệp python mới trong dự án của bạn. Hãy đặt tên cho nó là “test_apitest. py”. Lưu ý “test_” trong tên tệp của bạn. Đây là theo các quy tắc cho PyTest. Chúng tôi sẽ chạy thử nghiệm bằng cách sử dụng khung thử nghiệm sẵn có của Python có tên là PyTest. PyTest chọn tất cả các tệp python đó trong dự án của bạn bắt đầu bằng “test_” để thực hiện kiểm tra

Trong “test_apitest. py”, câu lệnh đầu tiên của chúng ta sẽ là

import requests

“yêu cầu” là mô-đun sẵn có của python được sử dụng để gửi yêu cầu http đến máy chủ. Chúng tôi sẽ sử dụng mô-đun này để gửi yêu cầu tới API của chúng tôi và ghi lại phản hồi

Bây giờ, đối với hướng dẫn này, chúng tôi sẽ sử dụng API thử nghiệm mẫu có sẵn trực tuyến. https. // yêu cầu. trong/api
Chúng tôi sẽ gửi yêu cầu đến các điểm cuối được xác định trong API này

Vui lòng sao chép và dán đoạn mã sau vào “test_apitest” của bạn. tập tin py

import requests

def test_api_get():
    resp = requests.get("https://reqres.in/api/users?page=2")
    assert (resp.status_code == 200), "Status code is not 200. Rather found : " + str(resp.status_code)
    for record in resp.json()['data']:
        if record['id'] == 4:
            assert record['first_name'] == "Eve",\
                "Data not matched! Expected : Eve, but found : " + str(record['first_name'])
            assert record['last_name'] == "Holt",\
                "Data not matched! Expected : Holt, but found : " + str(record['last_name'])

def test_api_post():
    data = {'name': 'John',
            'job': 'QA'}
    resp = requests.post(url="https://reqres.in/api/users", data=data)
    data = resp.json()
    assert (resp.status_code == 201), "Status code is not 201. Rather found : "\
        + str(resp.status_code)
    assert data['name'] == "John", "User created with wrong name. \
        Expected : John, but found : " + str(data['name'])
    assert data['job'] == "QA", "User created with wrong job. \
        Expected : QA, but found : " + str(data['name'])

yêu cầu nhập khẩu

Sử dụng câu lệnh này, chúng tôi đang nhập mô-đun yêu cầu của python trong dự án của mình

resp = yêu cầu. nhận(“https. // yêu cầu. in/api/users?page=2”)

Câu lệnh này là một phần của phương thức test_api_get(), đây là một trong những trường hợp thử nghiệm của chúng tôi để kiểm tra phương thức GET của API đang được thử nghiệm. yêu cầu. Phương thức get() gửi một yêu cầu http GET tới URL đã cho và trả về đối tượng phản hồi chứa tất cả dữ liệu phản hồi từ yêu cầu GET và lưu nó vào biến “resp”

khẳng định (tương ứng. status_code == 200), “Mã trạng thái không phải là 200. thay vì tìm thấy. ” + str(tương ứng. status_code)

khẳng định được sử dụng ở định dạng PyTest để đặt một xác nhận cho một điều kiện. Điều kiện ở đây là kiểm tra mã phản hồi của yêu cầu GET. Chúng tôi có thể tìm nạp mã phản hồi đã truy xuất bằng cách sử dụng “resp. status_code”. Ở đây chúng tôi đang kiểm tra xem mã phản hồi được trả về có phải là 200 hay không và nếu không, chúng tôi sẽ in một thông báo cho xác nhận không thành công

để ghi lại. json()[‘dữ liệu’]

Ở đây, chúng tôi đang chuyển đổi đối tượng phản hồi của mình thành cú pháp JSON bằng cách sử dụng resp. phương thức json(). Và sau đó điều hướng json bằng cách sử dụng các thực thể của nó để tìm dữ liệu mà chúng tôi muốn đưa ra xác nhận. Một vài dòng tiếp theo là các xác nhận khác nhau mà chúng tôi đã sử dụng để xác minh dữ liệu phản hồi

resp = yêu cầu. bài đăng(url=”https. // yêu cầu. trong/api/người dùng”, dữ liệu=dữ liệu)

Câu lệnh này là một phần của phương thức test_api_post(), đây là trường hợp thử nghiệm để kiểm tra phương thức POST của API đang được thử nghiệm. yêu cầu. phương thức post(url, data) được sử dụng để gửi một yêu cầu http POST tới URL đã cho có đính kèm dữ liệu JSON. Và đối tượng phản hồi sẽ được ghi vào biến resp

dữ liệu = phản hồi. json()
Ở đây chúng tôi đang chuyển đổi đối tượng phản hồi của mình thành dữ liệu JSON và lưu trữ JSON kết quả thành biến dữ liệu. Một số câu lệnh tiếp theo là các xác nhận mà chúng tôi đã áp dụng cho dữ liệu JSON phản hồi

Chạy các trường hợp thử nghiệm

Chạy các trường hợp thử nghiệm bằng Pytest rất đơn giản và dễ dàng. Bạn chỉ cần điều hướng đến thư mục gốc của dự án bằng dòng lệnh (CMD) và chạy lệnh sau

> pytest

Lệnh này sẽ bắt đầu thực thi tất cả các tệp thử nghiệm bắt đầu bằng “test_” và tất cả các phương thức bên trong các tệp này bắt đầu bằng “test_”. Đây là cách pytest hoạt động. Chờ thực hiện. Khi các trường hợp thử nghiệm được thực thi, bạn sẽ thấy một đầu ra như thế này

========================== test session starts ========================
platform win32 -- Python 3.7.3, pytest-4.6.3, py-1.8.0, pluggy-0.12.0
rootdir: 
plugins: html-1.20.0, metadata-1.8.0
collected 2 items

test_apitest.py ..
[100%] 
============================ 2 passed in 3.50 seconds =================

Điều này có nghĩa là 2 trường hợp thử nghiệm của bạn đã vượt qua thành công. Giờ đây, bạn có thể thêm các trường hợp thử nghiệm và xác nhận của riêng mình để tự động hóa các trường hợp thử nghiệm API của mình

Hy vọng bài viết này sẽ giúp bạn bắt đầu thử nghiệm tự động hóa API bằng Python. Hãy chia sẻ bình luận của bạn dưới đây cho bất kỳ mối quan tâm

thử nghiệm vui vẻ

Thẻ
Tự động hóa API, Tự động hóa API bằng công cụ mã nguồn mở, Tự động hóa API bằng python, kiểm thử tự động, Python, kiểm thử QA, kiểm thử QA phần mềm, kiểm thử phần mềm, dịch vụ kiểm thử phần mềm, công cụ kiểm thử

Chia sẻ

Giải pháp CNTT Fleek
[email được bảo vệ]

Fleek IT Solutions là một công ty kiểm thử phần mềm độc lập hàng đầu chuyên cung cấp các dịch vụ kiểm thử phần mềm độc lập và khách quan cho các tổ chức và công ty sản phẩm toàn cầu

Python có tốt cho thử nghiệm API không?

Trả lời. Đúng. Ngôn ngữ Python được sử dụng với Selenium để thực hiện kiểm tra. API Python rất hữu ích để kết nối với trình duyệt thông qua Selenium .

Làm cách nào để thực hiện kiểm tra API bằng Python?

Kiểm tra API bằng Python
Chương 1 - Thiết lập
Chương 2 - Thực hiện các yêu cầu HTTP
Chương 3 - Khẳng định lưu loát
Chương 4 - Làm việc với XML
Chương 5 - Làm việc với JSON
Chương 6 - Xác thực lược đồ phản hồi
Chương 7 - Cấu trúc tái cấu trúc

Python có thể được sử dụng cho API không?

Khi sử dụng API với Python, bạn chỉ cần một thư viện. yêu cầu . Với nó, bạn sẽ có thể thực hiện hầu hết, nếu không muốn nói là tất cả, các hành động cần thiết để sử dụng bất kỳ API công khai nào. Để làm theo các ví dụ về mã trong hướng dẫn này, hãy đảm bảo rằng bạn đang sử dụng Python 3. 8. 1 và yêu cầu 2. 24.

Python có tốt cho API REST không?

Python là ngôn ngữ lập trình cực kỳ phổ biến để xây dựng API RESTful . Chọn khung phù hợp để tạo API của bạn là một yếu tố quan trọng trong các giai đoạn xây dựng ban đầu. Trong bài đăng này, chúng ta sẽ khám phá 5 khung API REST phổ biến nhất để xây dựng API web bằng Python.