1. Trang chủ
  2. » Giáo Dục - Đào Tạo

KIỂM THỬ WEB PIBOOK BÁN SÁCH BẰNG CÔNG CỤ UNIT TEST, TEST SELENIUM, TEST API

58 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Kiểm Thử Web PIBOOK Bán Sách Bằng Công Cụ Unit Test, Test Selenium, Test API
Tác giả Huỳnh Hữu Mừng
Người hướng dẫn Th.S Nguyễn Thị Ngọc Thanh
Trường học Trường Đại Học Thủy Lợi – Phân Viện Miền Nam
Chuyên ngành Công Nghệ Thông Tin
Thể loại Báo Cáo Kiểm Thử Phần Mềm
Năm xuất bản 2024
Thành phố TP. HCM
Định dạng
Số trang 58
Dung lượng 4,74 MB

Nội dung

Thực thi 3 test case trên sẽ có kết quả như sau:1.2 Kiểm tra đầu vào email_Ngoc28_Vien53 1.2.1 Đặc tả Kiểm tra xem một chuỗi email có hợp lệ hay không?. Vào winform bắt sự kiện cho nút b

Trang 1

TRƯỜNG ĐẠI HỌC THỦY LỢI – PH MIỀN NAM

BÁO CÁO KIỂM THỬ PHẦN MỀM

Đề Tài KIỂM THỬ WEB PIBOOK BÁN SÁCH BẰNG CÔNG CỤ UNIT TEST,

TEST SELENIUM, TEST API

Giảng Viên Hướng Dẫn: Th.S Nguyễn Thị Ngọc Thanh

Sinh viên báo cáo:

Huỳnh Hữu Mừng

TP HCM, tháng 6/2024

Trang 2

MỤC LỤC

Chương 1 Unit test 3

1.1 Kiểm tra giải phương trình bậc 2 3

1.1.1Đặc tả 3

1.1.2 Có 3 test case 3

1.1.3 Step by step 4

1.2 Kiểm tra đầu vào email 7

1.2.1 Đặc tả 7

1.2.2 Có 2test case 7

1.2.3 Step by step 7

1.3 Chức năng kiểm tra số nguyên tố 10

1.3.1 Đặc tả 10

1.3.2 Có 1 test case 10

1.3.3 Step by step 10

1.4.Tính luỹ thừa 13

1.4.1 Đặc tả 13

1.4.2 Test Case: Có 5 test case 13

1.4.3 Step by Step 13

1.5 Kiểm tra hàm xét học bổng 16

1.5.1Đặc tả: 16

1.5.2 Có 4 test case 16

1.5.3Step by Step 16

Chương 2 Test selenium trên website pibook.vn 19

2.1 Chức năng đăng ký 19

2.1.1 Đặc tả 19

2.1.2 Step by step 19

2.2 Chức năng đăng nhập 23

2.2.1 Đặc tả 23

2.2.2 Step by step 23

2.3 Chức năng quên mật khẩu 26

2 3.1 Đặc tả 26

2.3.2 Step by step 26

Trang 3

2.4Chức năng tìm kiếm 28

2.4.1Đặc tả 28

2.4.2Step by step 28

2.5 Chức năng thêm giỏ hàng 31

2.5.1 Đặc tả 31

2.5.2Step by step 31

2.6 Chức năng chọn sản phẩm 34

2.6.1 Đặc tả 34

2.6.2 Step by step 35

Chương 3 Test API 37

3.1 Tạo người dùng mới 37

3.1.1 Đặc tả 37

3.1.2 Có 2 test case 37

3.2 Danh sách người dùng 40

3.2.1 Đặc tả 40

3.2.2 Có 3 test case 40

3.2.3 Step by step 40

3.3 Delay 42

3.3.1 Đặc tả 42

3.3.2 Có 3 test case 42

3.3.3 Step by step 42

https://github.com/MATan1808/Ngoc28_Vien53

Trang 4

Chương 1 Unit test

1.1 Chức năng Kiểm tra giải phương trình bậc 2

1.1.1Đặc tả

Chức năng này nhằm khởi tạo và giải phương trình bậc 2 dạng 𝑎x^2+𝑏x+𝑐=0nơi 𝑎, 𝑏, 𝑐 là các hệ số thực được cung cấp bởi người dùng Chức năng sẽ tính toán các nghiệm (nếu có) của phương trình dựa trên giá trị của delta (Δ).)

Tính delta (Δ).) theo công thức: Δ).=𝑏^2−4𝑎𝑐

Dựa vào giá trị của Δ).:

o Nếu Δ).>0: phương trình có 2 nghiệm phân biệt

 x1 = (-b + Math.Sqrt(delta)) / (2 * a);

 x2 = (-b - Math.Sqrt(delta)) / (2 * a);

o Nếu Δ).=0: phương trình có nghiệm kép

 x1=x2= - b / (2 * a)

o Nếu Δ).<0: phương trình vô nghiệm

 Kết quả mong đợi

Các nghiệm của phương trình (nếu có)

1.1.2 Có 3 test case

ut

Kết quảmongđợi

Thực tế Tes

tresu

Trang 5

nHon0_Ngoc28_V

ien53)

Test delta lớnhơn 0

a=

1.0b=-3.0c=2.0

x1=1.0x2=2.0

x1=1.0x2=2.0

Pass

TC03(TestDeltaNh

oHon0_Ngoc28_V

ien53)

Test delta nhỏhơn 0

a=1.0b=2.0c=3.0

Vônghiệm

Vônghiệm

Pass

1.1.3 Step by step

Thiết kế giao diện tính phương trình bậc 2 và các phép tính đều thông qua class PTB2.cs

Trang 6

Vào winform bắt sự kiện cho nút button Giải phương trình

private void button1_Click(object sender, EventArgs e)

double x1 = (-b + Math.Sqrt(delta)) / (2 * a);

double x2 = (-b - Math.Sqrt(delta)) / (2 * a);

MessageBox.Show($"Phương trình có hai nghiệm: x1 = {x1}, x2 =

Trang 7

Tạo class PTB2.cs

public class PTB2_Ngoc28_Vien53

{

// Phương thức giải phương trình bậc 2 ax^2 + bx + c = 0

public static Tuple<double, double>

GiaiPhuongTrinhBac2_Ngoc28_Vien53(double a_Ngoc28_Vien53, double b_Ngoc28_Vien53, double c_Ngoc28_Vien53)

// Nếu delta > 0, phương trình có 2 nghiệm phân biệt

double x1_Ngoc28_Vien53 = (-b_Ngoc28_Vien53 +

// Nếu delta = 0, phương trình có nghiệm kép

double x_Ngoc28_Vien53 = -b_Ngoc28_Vien53 / (2 *

// Nếu delta < 0, phương trình vô nghiệm (trong tập số thực)

throw new ArgumentException("Phương trình vô nghiệm");

}

Trang 8

// Kiểm tra kết quả có đúng như mong đợi

Trang 9

// Kiểm tra kết quả có đúng như mong đợi

}

}

}

Trang 10

Thực thi 3 test case trên sẽ có kết quả như sau:

1.2 Kiểm tra đầu vào email_Ngoc28_Vien53

1.2.1 Đặc tả

Kiểm tra xem một chuỗi email có hợp lệ hay không?

 Input: Một chuỗi địa chỉ email cần kiểm tra

 Xử lí:

Sử dụng biểu thức chính quy để kiểm tra xem chuỗi địa chỉ email

Trả về kết quả True nếu chuỗi email đúng, ngược lại trả về kết quả False

Trang 11

 Kết quả mong đợi:

True: nếu chuỗi email hợp lệ

False: nếu chuỗi email không hợp lệ

g đợi

Kếtquảthựctế

Testresult

lệ_Ngoc28_

Vien53

ltmvien@gmailcom03

Trang 12

Vào winform bắt sự kiện cho nút button Kiem tra

private void kiemtra_Click(object sender, EventArgs e)

{

// Lấy chuỗi email từ ô nhập liệu

string email_Ngoc28_Vien53 = nhap.Text;

// Kiểm tra xem email có hợp lệ hay không bằng phương thức IsValidEmail

// Nếu email không hợp lệ, hiển thị thông báo "Email không hợp lệ."

kq.Text = "Email không hợp lệ.";

// Định nghĩa lớp kiểm tra đầu vào email

public class DauVaoEmail_Ngoc28_Vien53

{

// Phương thức tĩnh để kiểm tra tính hợp lệ của email

public static bool Email_Ngoc28_Vien53(string email_Ngoc28_Vien53) {

// Biểu thức chính quy để kiểm tra định dạng email

string pattern_Ngoc28_Vien53 = 9.-]+\.[a-zA-Z]{2,}$";

// Sử dụng Regex để kiểm tra email có khớp với biểu thức chính quy haykhông

Trang 13

// Định nghĩa lớp kiểm thử cho DauVaoEmail_Ngoc28_Vien53

public class TestDauVaoEmail_Ngoc28_Vien53

// Thiết lập các giá trị email hợp lệ

string[] validEmails = { "example@example.com",

"example123@example.co.uk", "user.name@example.domain.com" };

// Thực hiện kiểm tra và xác nhận

foreach (string email in validEmails)

{

bool result_Ngoc28_Vien53 =

DauVaoEmail_Ngoc28_Vien53.Email(email);

bool expected_Ngoc28_Vien53 = true;

// So sánh kết quả thực tế với kết quả mong đợi

Assert.AreEqual(expected_Ngoc28_Vien53,

result_Ngoc28_Vien53);

}

}

Trang 14

// Phương thức kiểm thử cho các email không hợp lệ

[TestMethod]

public void EmailKhongHopLe_Ngoc28_Vien53()

{

// Thiết lập các giá trị email không hợp lệ

string[] invalidEmails = { "example.com", "example@example",

"@example.com", "user@.com", "user.name@" };

// Thực hiện kiểm tra và xác nhận

foreach (string email in invalidEmails)

{

bool result_Ngoc28_Vien53 =

DauVaoEmail_Ngoc28_Vien53.Email(email);

bool expected_Ngoc28_Vien53 = false;

// So sánh kết quả thực tế với kết quả mong đợi

Trang 15

− Nếu n bằng 0, nó trả về 1.0, vì mọi số mũ của 0 đều bằng 1

− Nếu n lớn hơn 0, nó sử dụng đệ quy để tính toán lũy thừa bằng ( x )

^( n-1)*x

− Nếu n nhỏ hơn 0, nó cũng sử dụng đệ quy ( x ) ^( n+1) / x

Dữ liệu kiểm thử: sử dụng file TestPower.csv để kiểm tra hàm

 Kết quả mong đợi: Xác định kết quả mong đợi cho mỗi trường hợp kiểm thửdựa trên quy tắc toán học của phép tính lũy thừa

1.3.2 Test Case: Có 5 test case

t

Kếtquảmongđợi

Kếtquảthự

c tế

Testresult

TC01(testPower_Ngoc28_Vie

n53)

Kiểm tra lũy thừadương_Ngoc28_Vien53

x=2 n=3

Kiểm tra lũy thừa x=2 0.5 0.5 Pass

Trang 16

âm_Ngoc28_Vien53

n=-1Kiểm tra lũy thừadương của số

âm_Ngoc28_Vien53

2n=2

x=-0.25 0.2

5Pass

1.3.3 Step by Step

Viết hàm bắt sự kiện nút tính lũy thừa

private void bang_Click(object sender, EventArgs e)

Trang 17

// Phương thức tĩnh để tính toán lũy thừa

public static double Power_Ngoc28_Vien53(double x_Ngoc28_Vien53, intn_Ngoc28_Vien53)

Thực hiện testcase với dữ liệu đã có sẵn, tạo thư mục Data trong project

UnitTest_Ngoc28_Vien53 Tạo tập tin TestPower

Nhập dữ liệu vào TestPower

Trang 18

Thêm reference sytstem.data vào project UnitTest_Ngoc28_Vien53

Viết testcase sử dụng dữ liệu này chạy các testcase như sau:

// Thuộc tính TestContext để truy cập dữ liệu kiểm thử

public TestContext TestContext { get; set; }

Trang 19

// Sử dụng tệp CSV làm nguồn dữ liệu cho kiểm thử

double x_Ngoc28_Vien53, expected_Ngoc28_Vien53;

// Lấy giá trị từ dữ liệu đầu vào trong tệp CSV

n_Ngoc28_Vien53 = int.Parse(TestContext.DataRow[1].ToString()); x_Ngoc28_Vien53 =

Trang 20

1.4 Kiểm tra hàm xét học bổng_Ngoc28_Vien53

1.4.1Đặc tả:

 Mô tả chức năng: phương thức xetHocBong kiểm tra xem một học sinh có

đủ điều kiện nhận học bổng hay không dựa trên điểm trung bình của ba mônhọc và điểm rèn luyện

 Đầu vào:

− Hệ số d1(double) : Điểm của môn học thứ nhất

− Hệ số d2(double) : Điểm của môn học thứ hai

− Hệ số d3(double): Điểm của môn học thứ ba

− Hệ số diemRl(double): Điểm rèn luyện

Kết quả mong đợi:

-Nếu cả hai điều kiện đều đúng, trả về True (đủ điều kiện nhận học bổng)

Trang 21

- Nếu bất kỳ điều kiện nào không đúng, trả về False (không đủ điều kiện nhận học bổng).

Kếtquảthự

c tế

Testresult

TC01

(DuDieuKien_Ngoc28_Vien53)

Đủđiềukiệnnhậnhọcbổng

d1=9.0d2=9.0d3=9.5diemRl

=85

True

True

Pass

TC02

(Khongdudieukien_Ngoc28_Vien53)

Khôngđủđiềukiệnnhậnhọcbổng

d1=8.0d2=7.5d3=8.0diemRl

=70

False

False

Pass

TC03(ĐiểmTrungBìnhThấpHơnYêuCầu

_Ngoc28_Vien53)

Điểm

d1=7.0d2=8.0

False

FalsePass

Trang 22

d3=8.0diemRl

=85

TC04(ĐiểmRènLuyệnThấpHơnYêuCầu

_Ngoc28_Vien53)

Điểmrènluyệnthấphơnyêucầu

d1=8.5d2=8.5d3=8.5diemRl

=79

False

False

Pass

1.4.3Step by Step

Viết hàm bắt sự nút kết quả

private void ktra_Click(object sender, EventArgs e)

{

Trang 23

double d1_Ngoc28_Vien53 = double.Parse(diem1.Text);

double d2_Ngoc28_Vien53 = double.Parse(diem2.Text);

double d3_Ngoc28_Vien53 = double.Parse(diem3.Text);

double diemRl_Ngoc28_Vien53 = double.Parse(renluyen.Text);

bool result_Ngoc28_Vien53 = XetHocBong(d1_Ngoc28_Vien53,

d2_Ngoc28_Vien53, d3_Ngoc28_Vien53, diemRl_Ngoc28_Vien53);

public static bool xetHocBong_Ngoc28_Vien53(double

d1_Ngoc28_Vien53, double d2_Ngoc28_Vien53, double d3_Ngoc28_Vien53, double diemRl_Ngoc28_Vien53)

{

// Tính điểm trung bình của các môn

double DiemTb_Ngoc28_Vien53 = (d1_Ngoc28_Vien53 +

d2_Ngoc28_Vien53 + d3_Ngoc28_Vien53) / 3;

Trang 24

// Kiểm tra điều kiện để nhận học bổng: điểm rèn luyện lớn hơn 80 và điểm trung bình lớn hơn 8.5

if (diemRl_Ngoc28_Vien53 > 80 && DiemTb_Ngoc28_Vien53 > 8.5) {

Trang 25

// Assert

bool expected_Ngoc28_Vien53 = true;

Assert.AreEqual(expected_Ngoc28_Vien53, result_Ngoc28_Vien53); }

// Kiểm thử cho trường hợp khi không đủ điều kiện nhận học bổng

// Kiểm thử cho trường hợp khi điểm trung bình thấp hơn yêu cầu

Trang 27

Chương 2 Test selenium trên website pibook.vn

Trang 28

2.1 Chức năng đăng ký

2.1.1 Đặc tả

Mục tiêu của kiểm thử này là xác minh rằng chức năng đăng ký trên trang web pibook.vn hoạt động chính xác Điều này bao gồm kiểm tra xem người dùng có thể tạo tài khoản mới với thông tin hợp lệ và nhận được xác nhận đăng ký thànhcông

Kết quảthực tế

Test date Test

result

Trang 29

g kí thành

công)

Đăng kíthành công

-Nhậptất cảthôngtin hợplệ

-Nhấnnútđăng kí

Đăngkíthànhcông

Đăng kíthànhcông

30/5/20241/6/2024

kí tự

-Nhậpmậtkhẩu 6

kí tự-Nhấnnútđăng kí

Đăngkíkhôngthànhcông

Vẫn ởtrangđăng kí

và hiểnthị

thôngbáo “mậtkhẩu tốithiểu 8

kí tự”

30/5/20241/6/2024

False

Mật khẩunhập lạikhôngkhớp

-Mậtkhẩunhập lạikhôngkhớp-Nhấnnútđăng kí

Đăngkíkhôngthànhcông

Vẫn ởtrangđăng kí

và hiểnthị

thôngbáo “mậtkhẩunhập lạikhôngđúng”

30/5/20241/6/2024

False

Email đãtồn tại

-Nhậpđịa chỉemail

đã đăngkýthànhcông-Nhấnnútđăng kí

Đăngkíkhôngthànhcông

Vẫn ởtrangđăng kí

và hiểnthị

thôngbáo “địa chỉemail đãđược sửdụng”

30/5/20241/6/2024

False

Nhập vào -Không Đăng Vẫn ở 30/05/202 False

Trang 30

các trườngbắt buộc

nhậpthôngtin vàobất kítrườngnào-Nhấnnútđăng kí

kíkhôngthànhcông

trangđăng kí

và hiểnthị

thôngbáo

“pleasefill outthisfield”

41/6/2024

// Khởi tạo WebDriver cho Chrome

driver_Ngoc28_Vien53 = new ChromeDriver();

// Điều hướng đến trang web

driver_Ngoc28_Vien53.Navigate().GoToUrl("https://pibook.vn/");Bước 2: Vào web pibook.vn right click vaò thanh tìm kiếm và kiểm tra thành phần lấy id, name

Điền họ tên

email

Trang 31

Số điện thoại

Mật khẩu

Nhập lại mật khẩu

Trang 32

Bước 3: Tiến hành viết kiểm thử

By.Name(string name): tìm dựa trên thuộc tính name

By.CssSelector(string css): tìm dựa trên selector của css

// Nhấn vào biểu tượng đăng nhập

//điền mật khẩu

driver_Ngoc28_Vien53.FindElement(By.CssSelector("#form-reg > child(4) > div > input")).SendKeys("vien@123");

//điền lại mật khẩu

driver_Ngoc28_Vien53.FindElement(By.CssSelector("input.form-control[name='re_password']")).SendKeys("vien@123");

//nhấn nút đăng ký

driver_Ngoc28_Vien53.FindElement(By.CssSelector("#form-reg > group.text-right > button")).Click();

div.form-Kết quả

Trang 34

2.2 Chức năng đăng nhập

2.2.1 Đặc tả

Mục tiêu của kiểm thử này là xác minh rằng chức năng đăng nhập trên trang web pibook.vn hoạt động chính xác Điều này bao gồm kiểm tra xem người dùng có thể nhập thông tin đăng nhập hợp lệ và truy cập thành công vào tài khoản của họ

Kết quảthực tế

Test date Test

result

Trang 35

g nhập

thành công)

nhậpthànhcông

đúngthôngtin tàikhoản-Nhấnnútđăngnhập

nhậpthànhcông

đêntrangchủ

-Nhập

số điệnthoạihoặcmậtkhẩukhôngchínhxác-Nhấnnútđăngnhập

Đăngnhậpkhôngthànhcông

Vẫn ởtrangđăngnhập,hiển thịthôngbáo “sốđiệnthoạihoặcmậtkhẩukhôngchínhxác”

30/505/2024

01/06/2024

False

Đăngnhập vớitrườngtrống

-Khôngnhậpmậtkhẩuhoặc,

và sốđiệnthoại-Nhấnnútđăngnhập

Đăngnhậpkhôngthànhcông

Vẫn ởtrangđăngnhập vàhiển thịthôngbáo

“Vuilòngnhập sốđiệnthoại vàmậtkhẩu”

30/05/202401/06/2024

False

2.2.3 Step by step

Bước 1: Khởi tạo WebDriver cho Chrome, điều hướng đến trang web

pibook.vn

Trang 36

public class DangNhap_Ngoc28_Vien53

// Khởi tạo WebDriver cho Chrome

driver_Ngoc28_Vien53 = new ChromeDriver();

// Điều hướng đến trang web

driver_Ngoc28_Vien53.Navigate().GoToUrl("https://pibook.vn/");Bước 2: Vào web pibook.vn right click vaò thanh tìm kiếm và kiểm tra thành phần lấy id, name

Bước 3: Tiến hành viết kiểm thử

By.Name(string name): tìm dựa trên thuộc tính name

By.CssSelector(string css): tìm dựa trên selector của css

// Nhấn vào biểu tượng đăng nhập

// Nhập mật khẩu

driver_Ngoc28_Vien53.FindElement(By.Name("password")).SendKeys("myvien1234");

//Nhấn nút đăng nhập

driver_Ngoc28_Vien53.FindElement(By.CssSelector(".btnSubmit.w-100")).Click();

Kết quả:

Trang 37

2.3 Chức năng quên mật khẩu

Trang 38

2 3.1 Đặc tả

Mục tiêu của kiểm thử này là xác minh rằng chức năng quên mật khẩu trên trang web pibook.vn hoạt động chính xác Điều này bao gồm kiểm tra xem người dùng có thể nhập email hợp lệ để nhận liên kết hoặc hướng dẫn đặt lại mật khẩu qua email

Kết quảthực tế

Test date Test

-Nhấn vàoliên kết

“Quênmật khẩu”

-Nhập địachỉ emailtrong hệthống-Nhấn nútlấy lại mậtkhẩu

Quênmậtkhẩuthànhcông

Thôngbáo

“Mậtkhẩukhôiphục đãđượcgửi vàoemailcủa bạn

30/05/2024

01/06/2024

-Nhấn vàoliên kết

“Quênmật khẩu”

-Nhập saiemail-Nhấn nútlấy lại mậtkhẩu

Quênmậtkhẩukhôngthànhcông

Thôngbáo

“Khôngtìm thấythànhviên”

30/05/2024

01/06/2024

False

Quênmậtkhẩu vớicáctrườngtrống

-Nhấn vàoliên kết

“Quênmật khẩu”

- Khôngnhậpemail-Nhấn nútlấy lại mật

Quênmậtkhẩukhôngthànhcông

Thôngbáo

“pleasefill outfield”

30/05/2024

01/06/2024

False

Trang 39

// Khởi tạo WebDriver cho Chrome

driver_Ngoc28_Vien53 = new ChromeDriver();

// Điều hướng đến trang web

Nhấn nút lấy lại mật khẩu

Bước 3: Tiến hành viết kiểm thử

By.CssSelector(string css): tìm dựa trên selector của css

// Nhấn vào biểu tượng đăng nhập

IWebElement searchButton =

driver_Ngoc28_Vien53.FindElement(By.Id("Header_account_view"));

Ngày đăng: 21/10/2024, 06:08

TỪ KHÓA LIÊN QUAN

w