Hướng dẫn how do you take multiple test cases in python? - làm thế nào để bạn thực hiện nhiều trường hợp thử nghiệm trong python?

Tôi chưa quen với Python và cố gắng làm điều gì đó tôi thường làm trong Ruby. Cụ thể, lặp lại trên một tập hợp các chỉ số, sử dụng chúng làm đối số để hoạt động và so sánh kết quả của nó với một loạt các đầu ra vật cố định.

Vì vậy, tôi đã viết nó như tôi thường làm trong Ruby, nhưng điều này dẫn đến chỉ một trường hợp thử nghiệm.

  def test_output[self]:
    for i in range[1,11]:
      ....
      self.assertEqual[fn[i],output[i]]

Tôi đang cố gắng kiểm tra cho mọi mục trong phạm vi. Làm thế nào tôi có thể làm điều đó?

Hỏi ngày 28 tháng 9 năm 2013 lúc 20:58Sep 28, 2013 at 20:58

1

Sử dụng Unittest, bạn có thể hiển thị sự khác biệt giữa hai chuỗi tất cả trong một trường hợp thử nghiệm.

seq1 = range[1, 11]
seq2 = [fn[j] for j in seq1]
assertSequenceEqual[seq1, seq2]

Nếu điều đó không đủ linh hoạt, sử dụng Unittest, có thể tạo ra nhiều bài kiểm tra, nhưng nó hơi khó khăn.

def fn[i]: ...
output = ...

class TestSequence[unittest.TestCase]:
    pass

for i in range[1,11]:
    testmethodname = 'test_fn_{0}'.format[i]
    testmethod = lambda self: self.assertEqual[fn[i], output[i]]
    setattr[TestSequence, testmethodname, testmethod]

Mũi làm cho những điều trên dễ dàng hơn thông qua các máy phát thử nghiệm.

import nose.tools

def test_fn[]:
    for i in range[1, 11]:
        yield nose.tools.assert_equals, output[i], fn[i]

Câu hỏi tương tự:

  • Python Unittest: Tạo nhiều thử nghiệm theo chương trình?
  • Làm thế nào để tạo các thử nghiệm đơn vị động [tham số] trong Python?

Đã trả lời ngày 28 tháng 9 năm 2013 lúc 21:14Sep 28, 2013 at 21:14

2

Trong Python World, hai tùy chọn phổ biến nhất để viết bài kiểm tra là:

  • Nhất quán
  • pytest

Trong pytest, bạn tham số hóa các bài kiểm tra rất dễ dàng:

@pytest.mark.parametrize[['param1', 'param2'],[
                         [1, 'go'],
                         [2, 'do not go']]]
def test_me[param1, param2]:
    # write test

Điều này cũng sẽ tạo ra đầu ra đẹp trong khi chạy thử nghiệm:

go.py:2: test_me[1-go] PASSED
go.py:2: test_me[2-do not go] PASSED

Tôi đang sử dụng pytest trong hai năm nay và nó là công cụ rất hay. Bạn có nhiều tính năng ở đó. Bên cạnh tham số cũng có các đồ đạc, những khẳng định rất hay [bạn không cần phải viết AsserTequal, chỉ assert a==b và pytest có thể tạo ra đầu ra rất đẹp và hữu ích cho nó.]

Đã trả lời ngày 28 tháng 9 năm 2013 lúc 21:34Sep 28, 2013 at 21:34

spinusspinusspinus

5.3172 Huy hiệu vàng19 Huy hiệu bạc26 Huy hiệu đồng2 gold badges19 silver badges26 bronze badges

1

Nếu câu hỏi của bạn liên quan đến, khi bạn đang giải quyết vấn đề ở những nơi cạnh tranh như HackerRank hoặc bất cứ nơi nào khác. Nếu họ không cung cấp môi trường của họ để chạy các trường hợp thử nghiệm trong một vòng lặp.

Và tại địa phương nếu bạn đang chạy mã cho trình biên dịch Python, nó sẽ hữu ích.

Bạn có thể chỉ cần sử dụng một vòng lặp trong thời gian hoặc hàm phạm vi của Python.

e.g:

t = int[input["Enter Number of testcases"]]
type[t]

while[t!=0]:

    n = int[input["Enter number of data"]]
    type[n]

    // Code logic or function Call

    t = t-1

Đã trả lời ngày 24 tháng 8 năm 2018 lúc 12:14Aug 24, 2018 at 12:14

Bài viết này là một phần của trung tâm nội dung của chúng tôi. Để biết thêm các tài nguyên chuyên sâu, hãy xem trung tâm nội dung của chúng tôi trên Selenium Pytest Diactor.

Khi số lượng các tính năng trong một ứng dụng web tăng lên, các thử nghiệm tự động hóa Selenium cũng tăng dần! Thật dễ dàng để bị choáng ngợp và bị lạc trong phần lớn các tập lệnh tự động hóa thử nghiệm Selenium. Nhưng, không phải mọi bài kiểm tra đều được tạo ra bằng nhau, một số thử nghiệm dễ bị mất điện hơn hoặc vào những thời điểm khác, bạn cần tập trung vào một số tính năng nhất định. But, not every test is created equal, some tests are more prone to an outage or at other times you need to focus on certain features.

Đây là một vài kịch bản tự động hóa thử nghiệm Selenium, trong đó bạn chỉ có thể chạy một vài thử nghiệm chọn lọc từ một bộ thử nghiệm lớn. Trong những trường hợp như vậy, bắt buộc rằng chỉ các xét nghiệm đó được kích hoạt để thực hiện. Với khung pytest, bạn có thể hỗ trợ thực thi tất cả nhiều trường hợp thử nghiệm trong một tệp. Bạn cũng có thể thực hiện các bài kiểm tra cụ thể trên cơ sở các dấu hiệu tùy chỉnh hoặc bằng cách nhóm chúng trên cơ sở biểu thức phụ.

Trong phần này của loạt hướng dẫn Selenium Python, tôi sẽ xem xét các lĩnh vực sau đây liên quan đến thử nghiệm trình duyệt tự động với khung pytest:

MỤC LỤC

  1. Làm thế nào để tạo một dự án pytest để chạy nhiều trường hợp thử nghiệm từ một tệp?
  2. Làm thế nào để chạy nhiều thử nghiệm từ các tệp đơn và nhiều với Python trong pytest?
  3. Chạy tập hợp con của một bài kiểm tra cụ thể với python trong pytest
    • Sử dụng các điểm đánh dấu tùy chỉnh trong Python Pytest
    • Các bài kiểm tra nhóm bằng cách kết hợp hoàn toàn hoặc một phần biểu thức chuỗi con với python trong pytest

Lưu ý: Điều này không nên nhầm lẫn với thử nghiệm song song, một chủ đề sẽ được đề cập sau đó trong loạt bài hướng dẫn Python. This should not be confused with parallel testing, a topic that would be covered later in the Python tutorial series.

Làm thế nào để tạo một dự án pytest để chạy nhiều trường hợp thử nghiệm từ một tệp?

Làm thế nào để chạy nhiều thử nghiệm từ các tệp đơn và nhiều với Python trong pytest?

Chạy tập hợp con của một bài kiểm tra cụ thể với python trong pytest

Sử dụng các điểm đánh dấu tùy chỉnh trong Python Pytest

Các bài kiểm tra nhóm bằng cách kết hợp hoàn toàn hoặc một phần biểu thức chuỗi con với python trong pytest

Lưu ý: Điều này không nên nhầm lẫn với thử nghiệm song song, một chủ đề sẽ được đề cập sau đó trong loạt bài hướng dẫn Python.

Đầu tiên, trong khi đặt tên cho các tệp thử nghiệm của bạn trong khung pytest Python, bạn cần đảm bảo rằng tên tệp bắt đầu hoặc kết thúc bằng _Test. Ngay cả các phương pháp kiểm tra cũng nên bắt đầu với thử nghiệm* khác, các phương pháp thử nghiệm đó sẽ bị bỏ qua trong khi thực hiện tập lệnh tự động hóa thử nghiệm selenium.

Trong trường hợp bạn muốn tìm hiểu thêm về cách bắt đầu với pytest, bạn có thể tham khảo hướng dẫn Selenium Python trước đây của chúng tôi.

Để bắt đầu với việc trình diễn cho hướng dẫn Selenium Python này, tôi sẽ tạo một cấu trúc thư mục đơn giản chứa hai thư mục con [test_1, test_2], mỗi thư mục chứa một tệp pytest python duy nhất [test_cross_browser_1.py, test_cross_browser_2.py].

  1. Dưới đây là cấu trúc thư mục chi tiết để chạy nhiều trường hợp thử nghiệm trong Python với pytest:
  2. Thư mục gốc [kiểm tra]
  3. Các bộ phụ chứa các bài kiểm tra
  4. Việc triển khai thử nghiệm trong cả hai tệp thử nghiệm cho hướng dẫn Selenium Python này gần như giống nhau, ngoại trừ tên phương thức và các dấu hiệu bổ sung đã có trước khi bắt đầu mỗi phương pháp thử nghiệm. Chúng tôi sẽ chạm vào các điểm đánh dấu pytest trong các phần tiếp theo. Các trường hợp thử nghiệm cho tự động hóa thử nghiệm selenium dưới đây:

Trường hợp kiểm tra 1

  1. Điều hướng đến URL //lambdatest.github.io/sample-todo-app/
  2. Chọn hai hộp kiểm đầu tiên
  3. Gửi ‘Kiểm tra vui vẻ tại LambDatest, đến hộp văn bản với id = sampletodotext
  4. Nhấp vào nút Thêm và xác minh xem văn bản có được thêm hay không

Trường hợp kiểm tra 2

Điều hướng đến URL //www.google.com

Trường hợp kiểm tra 2:

Mã hướng dẫn

Bước 1 - Để bắt đầu, chúng tôi nhập tất cả các gói Python cần thiết. To get started, we import all the required Python packages.

Bước 2 - Một tên thử nghiệm thích hợp được đặt cho phương thức tùy thuộc vào việc nó có trong test_cross_browser_1.py hoặc test_cross_browser_2.py. Dưới đây là các phương pháp thử nghiệm cho test_cross_browser_1.py và test_cross_browser_2.py cho hướng dẫn Selenium Python này tương ứng. A proper test name is given to the method depending on whether it is present in the test_cross_browser_1.py or test_cross_browser_2.py. Below are the test methods for test_cross_browser_1.py and test_cross_browser_2.py for this Selenium Python tutorial respectively.

Bước 3 - Việc thực hiện thử nghiệm thực tế được thêm vào các phương pháp tương ứng. Chúng tôi sẽ không tiết lộ vào các chi tiết phút của việc thực hiện thử nghiệm vì hướng dẫn Selenium Python này tập trung vào các khía cạnh thực hiện. The actual test implementation is added to the respective methods. We would not divulge into minute details of the test implementation as this Selenium Python tutorial focuses on the execution aspects.

Đối với cả hai tập lệnh tự động hóa thử nghiệm selenium, một ví dụ của Chrome WebDriver được khởi tạo khi bắt đầu. Chi tiết về các yếu tố web tương ứng thu được bằng tính năng kiểm tra có sẵn trong trình duyệt Chrome.

Khi các phần tử web được định vị, các phương thức selenium thích hợp [find_element_by_name [], find_element_by_id []] và các hoạt động cần thiết [tức là. click [], gửi [], send_keys [], v.v.] được thực hiện trên các yếu tố đó.

Bước 4 - Trường hợp Chrome WebDriver được đóng sau mỗi trường hợp tự động hóa thử nghiệm selenium để các tài nguyên được sử dụng trong giai đoạn thử nghiệm được phát hành. The Chrome WebDriver instance is closed after every Selenium test automation case so that the resources used during the testing phase are released.

Hướng dẫn pytest này cho người mới bắt đầu và các chuyên gia sẽ giúp bạn tìm hiểu cách sử dụng khung pytest với selenium và python để thực hiện thử nghiệm tự động hóa selenium.

Làm thế nào để chạy nhiều trường hợp thử nghiệm từ các tệp đơn và nhiều với Python trong pytest?

Để thực hiện triển khai kiểm tra từ tất cả các tệp trong thư mục & trình phụ phụ, trước tiên chúng tôi chuyển sang thư mục gốc [tức là kiểm tra], đăng mà chúng tôi chỉ cần thực hiện lệnh sau trên thiết bị đầu cuối:

pytest--verbose--capture=no--verbose--capture=no

Lệnh này sẽ điều hướng đến mọi thư mục con và thực thi các thử nghiệm trong các tệp bắt đầu bằng test_ hoặc kết thúc bằng _test. Trong kịch bản tự động hóa thử nghiệm Selenium được đề cập ở trên, lệnh sẽ thực thi hoàn toàn bốn thử nghiệm được đặt tại Test_cross_browser_1.py và test_cross_browser_2.pypy

Dưới đây là ảnh chụp nhanh thực thi nơi chúng ta có thể thấy rằng tất cả bốn thử nghiệm đã được thực hiện và thông qua.

Để thực hiện các thử nghiệm nằm trong một tệp cụ thể [ví dụ: test_1 \ test_cross_browser_1.py], lệnh py.test được thực thi từ thiết bị đầu cuối.Test_1\ test_cross_browser_1.py], the command py.test is executed from the terminal.

Bạn có thể tham khảo tài liệu Lambdatest, để chạy các tập lệnh pytest bằng nền tảng Lambdatest. Trong trường hợp bạn muốn khám phá các khung Python khác cho Selenium, bạn có thể xem blog của chúng tôi trên các khung thử nghiệm Python hàng đầu để tự động hóa thử nghiệm Selenium vào năm 2020.

Chạy tập hợp con của một bài kiểm tra cụ thể với python trong pytest

Trong khi thực hiện tự động hóa thử nghiệm selenium với pytest, bạn có thể bắt gặp các trường hợp bạn không muốn thực hiện tất cả các thử nghiệm có trong thư mục thử nghiệm, tức là chỉ cần thực thi một tập hợp con thử nghiệm. Tính năng này đặc biệt hữu ích khi tệp thử nghiệm chứa một số thử nghiệm và chỉ có một vài thử nghiệm phải được thực thi.

Có hai cách trong đó một tập hợp các bài kiểm tra có thể được thực hiện trong pytest.

Sử dụng các điểm đánh dấu tùy chỉnh trong Python Pytest

Trong pytest, pytest.mark trợ giúp được sử dụng để đặt siêu dữ liệu trên các chức năng thử nghiệm. Một số điểm đánh dấu được xây dựng trong pytest là bỏ qua, xfail, bỏ qua và tham số hóa. Ngoài các điểm đánh dấu tích hợp này, PyTest còn cho phép tạo các dấu hiệu tùy chỉnh có thể được áp dụng cho các lớp kiểm tra hoặc mô-đun.

Các dấu hiệu tùy chỉnh có thể được thêm vào tên thử nghiệm bằng cách sử dụng:

@pytest.mark.pytest.mark.

Trong ví dụ hiện tại, chúng tôi xác định bốn điểm đánh dấu trên các phương thức thử nghiệm và các điểm đánh dấu tương tự phải được đăng ký trong pytest.ini có trong thư mục gốc [tức là thử nghiệm].

Các dấu hiệu tùy chỉnh phải được đăng ký trong tệp pytest.ini. Nếu việc đăng ký không được thực hiện, lỗi [bạn có thể đăng ký nhãn hiệu tùy chỉnh để tránh cảnh báo này - để biết chi tiết, xem [//docs.pytest.org/en/latest/mark.html] sẽ được hiển thị và thực thi không đi xuyên qua.

Để tránh lỗi trên, các điểm đánh dấu tùy chỉnh phải được đăng ký trong pytest.ini sẽ có trong thư mục từ nơi bạn có kế hoạch thực hiện thư mục thực thi, tức là trong trường hợp của chúng tôi. Thông tin chi tiết về các dấu hiệu tùy chỉnh trong pytest có sẵn trong tài liệu chính thức của pytest.

Dưới đây là nội dung của pytest.ini nơi các điểm đánh dấu được thêm vào dưới trường đánh dấu. Tất cả mọi thứ sau đại tràng [:] là một mô tả tùy chọn.

Điểm đánh dấu tùy chỉnh cũng có thể được sử dụng bởi các plugin. Các điểm đánh dấu này cũng được sử dụng để chọn chọn lọc các thử nghiệm để thực thi thông qua tùy chọn dòng lệnh [cùng với lệnh py.test].

Để thực hiện các phương thức được xác định theo các dấu hiệu tùy chỉnh LambDatest1_1 và LambDatest2_2, các lệnh sau được thực thi trên thiết bị đầu cuối [trong các thiết bị đầu cuối khác nhau khi các thử nghiệm được thực thi theo phương pháp ser].

py.test-v-mlambdatest1_1.test-v-mlambdatest1_1

    py.test-v-mlambdatest2_2py.test-v-mlambdatest2_2

Hiển thị dưới đây là ảnh chụp nhanh của thực thi tập lệnh tự động hóa selenium.

Các bài kiểm tra nhóm bằng cách kết hợp hoàn toàn hoặc một phần biểu thức chuỗi con với python trong pytest

PyTest cho phép thực hiện chọn lọc các phương thức kiểm tra bằng cách thực hiện các thử nghiệm thông qua biểu thức phụ phù hợp. Một biểu thức là một biểu thức có thể đánh giá Python trong đó tất cả các tên đều phù hợp với tên thử nghiệm và các lớp cha.

Chuỗi được khớp [nghĩa là chuỗi con] được truyền qua tùy chọn -K có sẵn với lệnh py.test.

py.test-v-k.test-v-k

-K không test_method, khớp với các phương pháp thử nghiệm không chứa test_method trong tên của chúng.

py.test-v-knot.test-v-knot

Được hiển thị bên dưới trong hướng dẫn Selenium Python này là mô tả chi tiết có sẵn với lệnh py.test.

Để thực hiện các phương thức kiểm tra, để chạy nhiều trường hợp thử nghiệm trong Python với pytest, có chứa lambdatest trong tên phương thức, chúng tôi thực thi lệnh sau trên thiết bị đầu cuối.

py.test-klambdatest--verbose.test-klambdatest--verbose

Các phương thức thử nghiệm test_lambdatest1_1 [], test_lambdatest1_2 [], test_lambdatest2_1 [] và test_lambdatest2_2 [] có trong test_1 \ test_crosser_1.py và test_2 \ test_crows_browser. Do đó, tất cả bốn phương pháp thử nghiệm chạy nhiều trường hợp thử nghiệm trong python với pytest theo cách nối tiếp. Hiển thị bên dưới là ảnh chụp nhanh thực thi:

Cũng đọc: Hướng dẫn Selenium Python: Bắt đầu với Pytest

Chứng nhận này dành cho các chuyên gia tìm cách phát triển chuyên môn nâng cao, thực hành trong thử nghiệm tự động hóa Selenium với Python và đưa sự nghiệp của họ lên một tầm cao mới.

Dưới đây, một cái nhìn thoáng qua về chứng nhận Selenium Python 101 từ Lambdatest:

Gói nó lên!

Trong bài viết này của loạt Hướng dẫn Selenium Python đang diễn ra, tôi đã xem xét các tình huống thực thi khác nhau, nơi bạn có thể chạy nhiều trường hợp thử nghiệm trong Python với pytest từ một tệp. Lệnh py.test, khi được thực thi trên một thư mục, thực thi các phương thức kiểm tra hợp lệ có trong thư mục [và các thư mục con của nó].

Các tập lệnh pytest python đã được sử dụng để thực hiện tự động hóa thử nghiệm selenium trên Lambdatest todoApp và Google Search, sử dụng selenium cromedriver. Thực hiện chọn lọc các phương pháp thử nghiệm trong Python pytest có thể đạt được bằng cách khớp nối con và sử dụng các dấu hiệu tùy chỉnh. Các dấu hiệu tùy chỉnh phải được đăng ký trong pytest.ini khác, các điểm đánh dấu sẽ không được công nhận trong quá trình thực hiện.

Điều này mang lại kết thúc cho hướng dẫn Selenium Python này! Hãy chia sẻ bài viết này với các đồng nghiệp của bạn, những người muốn biết cách chạy nhiều trường hợp thử nghiệm trong Python với pytest. Một retweet luôn được chào đón! Đó là tất cả mọi người. Hạnh phúc thử nghiệm !!!?Happy Testing!!!?

Himanshu Sheth

Himanshu Sheth là một nhà công nghệ và blogger dày dạn kinh nghiệm với hơn 15 năm kinh nghiệm làm việc đa dạng. Ông hiện đang làm việc với tư cách là nhà phát triển chính của nhà truyền giáo và ‘Giám đốc cấp cao [Tiếp thị nội dung kỹ thuật] tại Lambdatest. Anh ấy rất tích cực với cộng đồng khởi nghiệp ở Bengaluru [và Down South] và yêu thích tương tác với những người sáng lập đam mê trên blog cá nhân của anh ấy [mà anh ấy đã duy trì từ hơn 15 năm qua].

Làm thế nào để bạn chạy nhiều trường hợp thử nghiệm trong Python?

Làm thế nào để bạn nhập nhiều trường hợp thử nghiệm trong Python ?..
Cú pháp:.
đầu vào[]. Chia [phân tách, MaxSplit] Ví dụ:.
# Lấy nhiều đầu vào cùng một lúc. # và loại đúc bằng hàm danh sách []. ....
# Lấy nhiều đầu vào cùng một lúc. x = [int [x] cho x trong đầu vào ["Nhập nhiều giá trị:"] ..

Làm thế nào để bạn chạy nhiều trường hợp kiểm tra trong mã?

TESTNG: Cách chạy nhiều bộ thử nghiệm trong selen..
Tạo một dự án mới trong Eclipse ..
Tạo hai gói trong các dự án [đặt tên chúng là com.suite1 và com.suite2].
Tạo một lớp trong mỗi gói [đặt tên chúng là flipkart.java và snapdeal.java] và sao chép mã dưới đây trong các lớp tương ứng ..

Làm thế nào để bạn thêm các trường hợp kiểm tra trong Python?

Để chuyển đổi ví dụ trước đó thành một trường hợp thử nghiệm nhất quán, bạn sẽ phải:..
Nhập bất hợp pháp từ thư viện tiêu chuẩn ..
Tạo một lớp gọi là TestSum kế thừa từ lớp TestCase ..
Chuyển đổi các chức năng kiểm tra thành các phương thức bằng cách thêm bản thân làm đối số đầu tiên ..
Thay đổi các xác nhận để sử dụng bản thân ..

Làm cách nào để chạy nhiều bài kiểm tra trong pytest?

Chạy nhiều thử nghiệm từ một tệp cụ thể và nhiều tệp để chạy tất cả các thử nghiệm từ tất cả các tệp trong thư mục và các thư mục con, chúng tôi cần chỉ chạy lệnh pytest.Điều này sẽ chạy tất cả các tên tệp bắt đầu bằng test_ và tên tệp kết thúc bằng _test trong thư mục đó và các thư mục con trong thư mục đó.run the pytest command. This will run all the filenames starting with test_ and the filenames ending with _test in that folder and subfolders under that folder.

Bài Viết Liên Quan

Chủ Đề