際際滷

際際滷Share a Scribd company logo
Ki畛m th畛 API
&
SoapUI
Margarita
1.Tr畉n Th畛 Thu畛 D動董ng
2.V滴 Th畛 Hi畛n
3.Ng担 Th畛 Thu H動畛ng
4.o Th畛 H動畛ng
5.Nguy畛n Th畛 Hoa
6.Nguy畛n Th畛 Hu畛
7.Nguy畛n Th畛 Thanh Huy畛n
N畛i dung ch鱈nh
1. Gi畛i thi畛u v畛 ki畛m th畛 API
1. API l g狸?
2. T畛ng quan v畛 ki畛m th畛 API
3. T畉i sao c畉n ki畛m th畛 API
4. Chu畉n b畛 nh畛ng g狸 畛 ki畛m th畛 API
5. M畛t s畛 ki畛u bug c畉n ch炭 箪
6. Ki畛m th畛 API th畛 c担ng v t畛 畛ng
7. Tool ki畛m th畛 API
1. Ki畛m th畛 t畛 畛ng API b畉ng SoapUI
1. Gi畛i thi畛u SoapUI
2. C叩ch s畛 d畛ng SoapUI
3. So s叩nh SoapUI v PostMan
4. Demo autotest REST API b畉ng SoapUI
1.Ki畛m th畛 API
1.1 API l g狸?
 API - Application Programming Interface: l
c畉u n畛i gi畛a client v server, cho ph辿p giao
ti畉p v trao 畛i d畛 li畛u gi畛a hai h畛 th畛ng
ph畉n m畛m ri棚ng bi畛t.
1.2 Ki畛m th畛
API
l g狸?
 Ki畛m th畛 API l th畛 nghi畛m m trong 坦 b畉n s畛
d畛ng ph畉n m畛m 畛 g畛i t畛i API, nh畉n k畉t qu畉 畉u
ra v ghi l畉i ph畉n h畛i c畛a h畛 th畛ng.
 Kh担ng t畉p trung vo giao di畛n m ch畛 y畉u t畉p
trung vo l畛p business logic c畛a ph畉n m畛m.
 V畉n th畛c hi畛n test 動畛c, kh担ng c畉n ph畛 thu畛c
vo client, trong tr動畛ng h畛p client ch動a ph叩t
tri畛n xong.
 D畛 dng h董n trong vi畛c t狸m ra nguy棚n nh但n l畛i
ph叩t sinh t畛 server hay client > s畛a l畛i s畉
nhanh h董n.
 Trong tr動畛ng h畛p ch畛 畛c l畉p ph叩t tri畛n API
m kh担ng c坦 client th狸 vi畛c test API l c畉n thi畉t.
1.3 T畉i sao
ki畛m th畛 API
l quan tr畛ng?
A. Thi畉t l畉p m担i tr動畛ng ki畛m th畛 API
B. X叩c 畛nh ph畉m vi v y棚u c畉u ki畛m th畛
C. Quy畉t 畛nh xem b畉n mu畛n th畛 nghi畛m
API c畛a m狸nh nh動 th畉 no?
D. Testcase API
1.4 C畉n
chu畉n b畛
nh畛ng g狸 畛
b畉t 畉u ki畛m
th畛 API?
 Thi畉t l畉p m担i tr動畛ng ki畛m th畛 API v畛i t畉p h畛p
c叩c tham s畛 c畉n thi畉t c畛a API.
 C畉u h狸nh c董 s畛 d畛 li畛u v m叩y ch畛 theo c叩c y棚u
c畉u c畛a 畛ng d畛ng.
 Th畛 th畛c hi畛n g畛i API 畛 畉m b畉o kh担ng c坦 l畛i
g狸 tr動畛c khi b畉n ti畉n hnh ki畛m th畛.
A. Thi畉t l畉p m担i tr動畛ng ki畛m th畛 API
 畉t c叩c c但u h畛i li棚n quan 畉n API 畛 x叩c 畛nh
ph畉m vi v y棚u c畉u ki畛m th畛.
 V鱈 d畛:
 Nh畛ng m担i tr動畛ng no n棚n s畛 d畛ng API nh動
th畉 no?
 畛 動u ti棚n trong ki畛m th畛 API?
 i畛u g狸 s畉 x畉y ra trong nh畛ng tr動畛ng h畛p
b狸nh th動畛ng, tr動畛ng h畛p b畉t th動畛ng
 API no kh叩c c坦 th畛 t動董ng t叩c v畛i API ny?
 ...
B. X叩c 畛nh ph畉m vi v y棚u c畉u ki畛m th畛
 M畛t s畛 ph動董ng ph叩p ki畛m th畛 API ph畛 bi畉n:
 Functionality testing - X叩c nh畉n API ho畉t
畛ng ch鱈nh x叩c theo 炭ng ch畛c nng m n坦
動畛c t畉o ra.
 Usability testing - X叩c nh畉n API c坦 th畛 s畛
d畛ng m畛t c叩ch d畛 dng
 Reliability testing - X叩c nh畉n vi畛c g畛i API v
tr畉 k畉t qu畉 ho畉t 畛ng 畛n 畛nh v nh畉t qu叩n
C. Quy畉t 畛nh xem b畉n mu畛n th畛 nghi畛m
API c畛a m狸nh nh動 th畉 no?
 M畛t s畛 ph動董ng ph叩p ki畛m th畛 API ph畛 bi畉n:
 Load testing - X叩c nh畉n API ho畉t 畛ng 炭ng v畛i m畛t
l動畛ng cu畛c g畛i l畛n nh畉t 畛nh
 Security testing - X叩c nh畉n API 達 define nh畛ng y棚u
c畉u v畛 b畉o m畉t nh動 authentication, permissions v
access controls
 API documentation testing - Discovery testing: X叩c nh畉n
ti li畛u h動畛ng d畉n s畛 d畛ng c畛a API l d畛 s畛 d畛ng cho
user
C. Quy畉t 畛nh xem b畉n mu畛n th畛 nghi畛m
API c畛a m狸nh nh動 th畉 no?
 C叩c tr動畛ng h畛p th畛 nghi畛m v畛 ki畛m tra API d畛a tr棚n:
 Ki畛m tra c叩c gi叩 tr畛 tr畉 v畛 d畛a tr棚n i畛u ki畛n 畉u vo.
 X叩c minh n畉u API kh担ng tr畉 l畉i b畉t k畛 k畉t qu畉 g狸 ho畉c k畉t
qu畉 sai.
 X叩c minh n畉u API k鱈ch ho畉t m畛t s畛 s畛 ki畛n kh叩c ho畉c
g畛i m畛t API kh叩c.
 X叩c minh xem API ang c畉p nh畉t b畉t k畛 c畉u tr炭c d畛 li畛u
no.
D. Testcase API
 V畉n 畛 b畉o m畉t
 C叩c v畉n 畛 v畛 s畛 tin c畉y. Kh坦 khn khi k畉t
n畛i v nh畉n ph畉n h畛i t畛 API.
 V畉n 畛 hi畛u nng. API th畛i gian ph畉n h畛i r畉t
cao.
 L畛i / c畉nh b叩o kh担ng 炭ng cho ng動畛i g畛i
 X畛 l箪 sai s畛 gi叩 tr畛 畛i s畛 h畛p l畛
 D畛 li畛u ph畉n h畛i kh担ng 動畛c c畉u tr炭c ch鱈nh
x叩c (JSON ho畉c XML)
1.5 M畛t s畛
ki畛u bug c畉n
ch炭 箪 khi ki畛m
th畛 API
1.6 Ki畛m th畛
th畛 c担ng hay
Ki畛m th畛 t畛
畛ng?
 Ki畛m tra API l m畛t trong nh畛ng l挑nh v畛c m
ki畛m th畛 t畛 畛ng 動畛c 叩nh gi叩 cao, 畉c
bi畛t l 畛i v畛i DevOps (Development and
Operations), v嘆ng 畛i ph叩t tri畛n agile v
continuous delivery.
 Khi no th畛c hi畛n ki畛m th畛 t畛 畛ng API?
1.7 M畛t s畛
tool ki畛m th畛
API
 SoapUI
 Postman
 Runscope
 Eclipse SDK tool- Automated ki畛m th畛
API
 Curl
 ...
2. Gi畛i thi畛u SoapUI
2.1 Gi畛i thi畛u
SoapUI
 SOAP UI l c担ng c畛 ki畛m th畛 m達 ngu畛n m畛
API. Gi炭p b畉n d畛 dng th畛c hi畛n ki畛m th畛 t畛
畛ng ch畛c nng, ki畛m th畛 t畉i v ki畛m th畛 b畉o
m畉t c叩c Web API kh叩c nhau.
2.1 Gi畛i thi畛u
SoapUI
 T畉o b畛 test suite, c坦 th畛 ch畉y t畛ng case ho畉c t畉t
c畉 c叩c testcase
 C坦 k畉t qu畉 tr畉 v畛 pass fail c畛a t畛ng case
 Th畛c hi畛n Functional Testing d畛 dng
 C坦 th畛 th畛c hi畛n Test Generator, SQL Injection
 Automation test v畛i Groovy
 H畛 tr畛 assertion
 C坦 th畛 dung v k畉 th畛a l畉i
 C坦 th畛 import postman collection
T鱈nh nng 畉c tr動ng
2.1 Gi畛i thi畛u
SoapUI
 Functional testing
 Load testing
 Security testing
C叩c lo畉i test c坦 th畛 s畛 d畛ng SoapUI
2.2 C叩ch s畛
d畛ng SoapUI
Download SoapUI free version:
 http://sourceforge.net/projects/SoapUI/files/
ho畉c
 http://SoapUI.org/downloads/SoapUI/open-
source.html
 Ch畛n phi棚n b畉n cho h畛 i畛u hnh c畛a b畉n v
t畉i v畛 b畛 ci SoapUI.
C叩c b動畛c ci 畉t:
 https://www.SoapUI.org/getting-
started/installing-SoapUI.html
Ci 畉t SoapUI
B1: Add REST Project
B2: Thi畉t l畉p resource, method, parameter cho request
B3: T畉o Test Suite
B4: T畉o Test Case
B5: T畉o Properties
B6: T畉o REST Request
B7: Add Property Transfer/ ho畉c Property Expansion
B8: Add assertion
C叩c b動畛c c董 b畉n t畉o m畛t project th畛c hi畛n
auto-test API
C畉u tr炭c m畛t Project
 Resource: L nh畛ng ti nguy棚n m b棚n cung c畉p service cung
c畉p cho. Trong cung m畛t Resource c坦 th畛 s畛 d畛ng nhi畛u
method kh叩c nhau.
 End Point: 畛a ch畛 c畛a service
M畛t s畛 kh叩i ni畛m c董 b畉n
Method:
 POST: th畛c hi畛n t畉o m畛i 畛i t動畛ng (create)
 GET: th畛c hi畛n l畉y d畛 li畛u (read)
 DELETE : th畛c hi畛n x坦a d畛 li畛u
 PUT: th畛c hi畛n update d畛 li畛u (update/replace)
 PATCH: th畛c hi畛n update d畛 li畛u (update/modify)
 HEAD: t動董ng t畛 nh動 GET nh動ng kh担ng tr畉 v畛 response
body
M畛t s畛 kh叩i ni畛m c董 b畉n
trong SOAPUI
 Parameter: th担ng tin tr動畛ng s畉 th畛c hi畛n test
V鱈 d畛 mu畛n test tr動畛ng 畛a ch畛 mail th狸 add t棚n tr動畛ng mail ch鱈nh
x叩c 達 動畛c 畛nh ngh挑a trong docs s畛 d畛ng API
 Properties: Nh畉p data test - c叩c d畛 li畛u 畉u vo m tester c畉n
s畛 d畛ng 畛 truy畛n vo c叩c parameter cho m畛i request th畛c
hi畛n
 REST Request: Ch畛n request s畉 th畛c hi畛n (但y ch鱈nh l
Request m 達 動畛c add v setup 畛 b動畛c 2)
M畛t s畛 kh叩i ni畛m c董 b畉n
trong SOAPUI
 Properties Transfer: Ch畛 畛nh truy畛n d畛 li畛u Properties no
cho REST Request no
 Assertion: Nh畉p tr動畛ng mu畛n ki畛m tra k畉t qu畉, v k畉t qu畉 k畛
v畛ng. N畉u sau khi ch畉y request, k畉t qu畉 tr畉 v畛 = k畉t qu畉 k畛
v畛ng s畉 b叩o PASS. Ng動畛c l畉i s畉 b叩o FAIL.
M畛t s畛 kh叩i ni畛m c董 b畉n
trong SOAPUI
 Contains Assertion: Ki畛m tra s畛 t畛n t畉i c畛a m畛t chu畛i.
 Not contains Assertion: Ki畛m tra s畛 kh担ng t畛n t畉i c畛a m畛t chu畛i.
 JsonPath Match: X叩c th畛c value c畛a bi畛u th畛c JsonPath c坦 炭ng
nh動 mong mu畛n kh担ng
 JsonPath Existence Match: X叩c minh value 畉c bi畛t c畛a JsonPath
c坦 t畛n t畉i trong chu畛i Json hay kh担ng
 JsonPath Count Match: X叩c minh s畛 ph畉n t畛 kh畛p v畛i bi畛u th畛c
JsonPath (n畉u 叩nh gi叩 m畉ng th狸 s畉 畉m s畛 ph畉n t畛 c畛a m畉ng)
c坦 l gi叩 tr畛 mong mu畛n kh担ng
 ...
M畛t s畛 lo畉i Assertions
2.3 So s叩nh
SoapUI v畛i
Postman
 Cung test API
 C湛ng bao g畛m c叩c ch畛c nng:
 Cho ph辿p g畛i HTTP Request
 Cho ph辿p thay 畛i header c畛a c叩c request
 Cho ph辿p post d畛 li畛u d動畛i d畉ng form (key-
value), text, JSON
 Hi畛n k畉t qu畉 tr畉 v畛 d畉ng text, image, XML, JSON
Gi畛ng nhau
2.3 So s叩nh
SoapUI v畛i
Postman
Kh叩c nhau
SoapUI Postman
Th畛c hi畛n ki畛m th畛 t畛 畛ng c畉
SOAP API v REST API
Ch畛 ki畛m th畛 t畛 畛ng 動畛c REST
API
Giao di畛n ph畛c t畉p Giao di畛n 董n gi畉n
G畛i request ch畉y test 董n gi畉n Ph畉i vi畉t c炭 ph叩p ch畉y request ph畛c
t畉p
N畛i dung vi畉t cho assertion 董n gi畉n C炭 ph叩p vi畉t cho assertion ph畛c t畉p
h董n
C坦 th畛 th畛c hi畛n c畉 functional
testing, security testing, load testing
Th畛c hi畛n functional testing, security
testing
C坦 th畛 import collection t畛 postman
sang
-
2.4 Demo
autotest
REST API
b畉ng SOAP
UI
 Endpoint:
 Resources:
Test cases:
T畉o test case 董n gi畉n validate cho c叩c
tr動畛ng h畛p ng k箪 ti kho畉n:
 ng k箪 failed do username ch畛a k箪 t畛
s畛
 ng k箪 failed do email 達 t畛n t畉i
Thanks!
Any questions?

More Related Content

API Testing & SoapUI

  • 2. Margarita 1.Tr畉n Th畛 Thu畛 D動董ng 2.V滴 Th畛 Hi畛n 3.Ng担 Th畛 Thu H動畛ng 4.o Th畛 H動畛ng 5.Nguy畛n Th畛 Hoa 6.Nguy畛n Th畛 Hu畛 7.Nguy畛n Th畛 Thanh Huy畛n
  • 3. N畛i dung ch鱈nh 1. Gi畛i thi畛u v畛 ki畛m th畛 API 1. API l g狸? 2. T畛ng quan v畛 ki畛m th畛 API 3. T畉i sao c畉n ki畛m th畛 API 4. Chu畉n b畛 nh畛ng g狸 畛 ki畛m th畛 API 5. M畛t s畛 ki畛u bug c畉n ch炭 箪 6. Ki畛m th畛 API th畛 c担ng v t畛 畛ng 7. Tool ki畛m th畛 API 1. Ki畛m th畛 t畛 畛ng API b畉ng SoapUI 1. Gi畛i thi畛u SoapUI 2. C叩ch s畛 d畛ng SoapUI 3. So s叩nh SoapUI v PostMan 4. Demo autotest REST API b畉ng SoapUI
  • 5. 1.1 API l g狸? API - Application Programming Interface: l c畉u n畛i gi畛a client v server, cho ph辿p giao ti畉p v trao 畛i d畛 li畛u gi畛a hai h畛 th畛ng ph畉n m畛m ri棚ng bi畛t.
  • 6. 1.2 Ki畛m th畛 API l g狸? Ki畛m th畛 API l th畛 nghi畛m m trong 坦 b畉n s畛 d畛ng ph畉n m畛m 畛 g畛i t畛i API, nh畉n k畉t qu畉 畉u ra v ghi l畉i ph畉n h畛i c畛a h畛 th畛ng. Kh担ng t畉p trung vo giao di畛n m ch畛 y畉u t畉p trung vo l畛p business logic c畛a ph畉n m畛m.
  • 7. V畉n th畛c hi畛n test 動畛c, kh担ng c畉n ph畛 thu畛c vo client, trong tr動畛ng h畛p client ch動a ph叩t tri畛n xong. D畛 dng h董n trong vi畛c t狸m ra nguy棚n nh但n l畛i ph叩t sinh t畛 server hay client > s畛a l畛i s畉 nhanh h董n. Trong tr動畛ng h畛p ch畛 畛c l畉p ph叩t tri畛n API m kh担ng c坦 client th狸 vi畛c test API l c畉n thi畉t. 1.3 T畉i sao ki畛m th畛 API l quan tr畛ng?
  • 8. A. Thi畉t l畉p m担i tr動畛ng ki畛m th畛 API B. X叩c 畛nh ph畉m vi v y棚u c畉u ki畛m th畛 C. Quy畉t 畛nh xem b畉n mu畛n th畛 nghi畛m API c畛a m狸nh nh動 th畉 no? D. Testcase API 1.4 C畉n chu畉n b畛 nh畛ng g狸 畛 b畉t 畉u ki畛m th畛 API?
  • 9. Thi畉t l畉p m担i tr動畛ng ki畛m th畛 API v畛i t畉p h畛p c叩c tham s畛 c畉n thi畉t c畛a API. C畉u h狸nh c董 s畛 d畛 li畛u v m叩y ch畛 theo c叩c y棚u c畉u c畛a 畛ng d畛ng. Th畛 th畛c hi畛n g畛i API 畛 畉m b畉o kh担ng c坦 l畛i g狸 tr動畛c khi b畉n ti畉n hnh ki畛m th畛. A. Thi畉t l畉p m担i tr動畛ng ki畛m th畛 API
  • 10. 畉t c叩c c但u h畛i li棚n quan 畉n API 畛 x叩c 畛nh ph畉m vi v y棚u c畉u ki畛m th畛. V鱈 d畛: Nh畛ng m担i tr動畛ng no n棚n s畛 d畛ng API nh動 th畉 no? 畛 動u ti棚n trong ki畛m th畛 API? i畛u g狸 s畉 x畉y ra trong nh畛ng tr動畛ng h畛p b狸nh th動畛ng, tr動畛ng h畛p b畉t th動畛ng API no kh叩c c坦 th畛 t動董ng t叩c v畛i API ny? ... B. X叩c 畛nh ph畉m vi v y棚u c畉u ki畛m th畛
  • 11. M畛t s畛 ph動董ng ph叩p ki畛m th畛 API ph畛 bi畉n: Functionality testing - X叩c nh畉n API ho畉t 畛ng ch鱈nh x叩c theo 炭ng ch畛c nng m n坦 動畛c t畉o ra. Usability testing - X叩c nh畉n API c坦 th畛 s畛 d畛ng m畛t c叩ch d畛 dng Reliability testing - X叩c nh畉n vi畛c g畛i API v tr畉 k畉t qu畉 ho畉t 畛ng 畛n 畛nh v nh畉t qu叩n C. Quy畉t 畛nh xem b畉n mu畛n th畛 nghi畛m API c畛a m狸nh nh動 th畉 no?
  • 12. M畛t s畛 ph動董ng ph叩p ki畛m th畛 API ph畛 bi畉n: Load testing - X叩c nh畉n API ho畉t 畛ng 炭ng v畛i m畛t l動畛ng cu畛c g畛i l畛n nh畉t 畛nh Security testing - X叩c nh畉n API 達 define nh畛ng y棚u c畉u v畛 b畉o m畉t nh動 authentication, permissions v access controls API documentation testing - Discovery testing: X叩c nh畉n ti li畛u h動畛ng d畉n s畛 d畛ng c畛a API l d畛 s畛 d畛ng cho user C. Quy畉t 畛nh xem b畉n mu畛n th畛 nghi畛m API c畛a m狸nh nh動 th畉 no?
  • 13. C叩c tr動畛ng h畛p th畛 nghi畛m v畛 ki畛m tra API d畛a tr棚n: Ki畛m tra c叩c gi叩 tr畛 tr畉 v畛 d畛a tr棚n i畛u ki畛n 畉u vo. X叩c minh n畉u API kh担ng tr畉 l畉i b畉t k畛 k畉t qu畉 g狸 ho畉c k畉t qu畉 sai. X叩c minh n畉u API k鱈ch ho畉t m畛t s畛 s畛 ki畛n kh叩c ho畉c g畛i m畛t API kh叩c. X叩c minh xem API ang c畉p nh畉t b畉t k畛 c畉u tr炭c d畛 li畛u no. D. Testcase API
  • 14. V畉n 畛 b畉o m畉t C叩c v畉n 畛 v畛 s畛 tin c畉y. Kh坦 khn khi k畉t n畛i v nh畉n ph畉n h畛i t畛 API. V畉n 畛 hi畛u nng. API th畛i gian ph畉n h畛i r畉t cao. L畛i / c畉nh b叩o kh担ng 炭ng cho ng動畛i g畛i X畛 l箪 sai s畛 gi叩 tr畛 畛i s畛 h畛p l畛 D畛 li畛u ph畉n h畛i kh担ng 動畛c c畉u tr炭c ch鱈nh x叩c (JSON ho畉c XML) 1.5 M畛t s畛 ki畛u bug c畉n ch炭 箪 khi ki畛m th畛 API
  • 15. 1.6 Ki畛m th畛 th畛 c担ng hay Ki畛m th畛 t畛 畛ng? Ki畛m tra API l m畛t trong nh畛ng l挑nh v畛c m ki畛m th畛 t畛 畛ng 動畛c 叩nh gi叩 cao, 畉c bi畛t l 畛i v畛i DevOps (Development and Operations), v嘆ng 畛i ph叩t tri畛n agile v continuous delivery. Khi no th畛c hi畛n ki畛m th畛 t畛 畛ng API?
  • 16. 1.7 M畛t s畛 tool ki畛m th畛 API SoapUI Postman Runscope Eclipse SDK tool- Automated ki畛m th畛 API Curl ...
  • 18. 2.1 Gi畛i thi畛u SoapUI SOAP UI l c担ng c畛 ki畛m th畛 m達 ngu畛n m畛 API. Gi炭p b畉n d畛 dng th畛c hi畛n ki畛m th畛 t畛 畛ng ch畛c nng, ki畛m th畛 t畉i v ki畛m th畛 b畉o m畉t c叩c Web API kh叩c nhau.
  • 19. 2.1 Gi畛i thi畛u SoapUI T畉o b畛 test suite, c坦 th畛 ch畉y t畛ng case ho畉c t畉t c畉 c叩c testcase C坦 k畉t qu畉 tr畉 v畛 pass fail c畛a t畛ng case Th畛c hi畛n Functional Testing d畛 dng C坦 th畛 th畛c hi畛n Test Generator, SQL Injection Automation test v畛i Groovy H畛 tr畛 assertion C坦 th畛 dung v k畉 th畛a l畉i C坦 th畛 import postman collection T鱈nh nng 畉c tr動ng
  • 20. 2.1 Gi畛i thi畛u SoapUI Functional testing Load testing Security testing C叩c lo畉i test c坦 th畛 s畛 d畛ng SoapUI
  • 21. 2.2 C叩ch s畛 d畛ng SoapUI Download SoapUI free version: http://sourceforge.net/projects/SoapUI/files/ ho畉c http://SoapUI.org/downloads/SoapUI/open- source.html Ch畛n phi棚n b畉n cho h畛 i畛u hnh c畛a b畉n v t畉i v畛 b畛 ci SoapUI. C叩c b動畛c ci 畉t: https://www.SoapUI.org/getting- started/installing-SoapUI.html Ci 畉t SoapUI
  • 22. B1: Add REST Project B2: Thi畉t l畉p resource, method, parameter cho request B3: T畉o Test Suite B4: T畉o Test Case B5: T畉o Properties B6: T畉o REST Request B7: Add Property Transfer/ ho畉c Property Expansion B8: Add assertion C叩c b動畛c c董 b畉n t畉o m畛t project th畛c hi畛n auto-test API
  • 24. Resource: L nh畛ng ti nguy棚n m b棚n cung c畉p service cung c畉p cho. Trong cung m畛t Resource c坦 th畛 s畛 d畛ng nhi畛u method kh叩c nhau. End Point: 畛a ch畛 c畛a service M畛t s畛 kh叩i ni畛m c董 b畉n
  • 25. Method: POST: th畛c hi畛n t畉o m畛i 畛i t動畛ng (create) GET: th畛c hi畛n l畉y d畛 li畛u (read) DELETE : th畛c hi畛n x坦a d畛 li畛u PUT: th畛c hi畛n update d畛 li畛u (update/replace) PATCH: th畛c hi畛n update d畛 li畛u (update/modify) HEAD: t動董ng t畛 nh動 GET nh動ng kh担ng tr畉 v畛 response body M畛t s畛 kh叩i ni畛m c董 b畉n trong SOAPUI
  • 26. Parameter: th担ng tin tr動畛ng s畉 th畛c hi畛n test V鱈 d畛 mu畛n test tr動畛ng 畛a ch畛 mail th狸 add t棚n tr動畛ng mail ch鱈nh x叩c 達 動畛c 畛nh ngh挑a trong docs s畛 d畛ng API Properties: Nh畉p data test - c叩c d畛 li畛u 畉u vo m tester c畉n s畛 d畛ng 畛 truy畛n vo c叩c parameter cho m畛i request th畛c hi畛n REST Request: Ch畛n request s畉 th畛c hi畛n (但y ch鱈nh l Request m 達 動畛c add v setup 畛 b動畛c 2) M畛t s畛 kh叩i ni畛m c董 b畉n trong SOAPUI
  • 27. Properties Transfer: Ch畛 畛nh truy畛n d畛 li畛u Properties no cho REST Request no Assertion: Nh畉p tr動畛ng mu畛n ki畛m tra k畉t qu畉, v k畉t qu畉 k畛 v畛ng. N畉u sau khi ch畉y request, k畉t qu畉 tr畉 v畛 = k畉t qu畉 k畛 v畛ng s畉 b叩o PASS. Ng動畛c l畉i s畉 b叩o FAIL. M畛t s畛 kh叩i ni畛m c董 b畉n trong SOAPUI
  • 28. Contains Assertion: Ki畛m tra s畛 t畛n t畉i c畛a m畛t chu畛i. Not contains Assertion: Ki畛m tra s畛 kh担ng t畛n t畉i c畛a m畛t chu畛i. JsonPath Match: X叩c th畛c value c畛a bi畛u th畛c JsonPath c坦 炭ng nh動 mong mu畛n kh担ng JsonPath Existence Match: X叩c minh value 畉c bi畛t c畛a JsonPath c坦 t畛n t畉i trong chu畛i Json hay kh担ng JsonPath Count Match: X叩c minh s畛 ph畉n t畛 kh畛p v畛i bi畛u th畛c JsonPath (n畉u 叩nh gi叩 m畉ng th狸 s畉 畉m s畛 ph畉n t畛 c畛a m畉ng) c坦 l gi叩 tr畛 mong mu畛n kh担ng ... M畛t s畛 lo畉i Assertions
  • 29. 2.3 So s叩nh SoapUI v畛i Postman Cung test API C湛ng bao g畛m c叩c ch畛c nng: Cho ph辿p g畛i HTTP Request Cho ph辿p thay 畛i header c畛a c叩c request Cho ph辿p post d畛 li畛u d動畛i d畉ng form (key- value), text, JSON Hi畛n k畉t qu畉 tr畉 v畛 d畉ng text, image, XML, JSON Gi畛ng nhau
  • 30. 2.3 So s叩nh SoapUI v畛i Postman Kh叩c nhau SoapUI Postman Th畛c hi畛n ki畛m th畛 t畛 畛ng c畉 SOAP API v REST API Ch畛 ki畛m th畛 t畛 畛ng 動畛c REST API Giao di畛n ph畛c t畉p Giao di畛n 董n gi畉n G畛i request ch畉y test 董n gi畉n Ph畉i vi畉t c炭 ph叩p ch畉y request ph畛c t畉p N畛i dung vi畉t cho assertion 董n gi畉n C炭 ph叩p vi畉t cho assertion ph畛c t畉p h董n C坦 th畛 th畛c hi畛n c畉 functional testing, security testing, load testing Th畛c hi畛n functional testing, security testing C坦 th畛 import collection t畛 postman sang -
  • 31. 2.4 Demo autotest REST API b畉ng SOAP UI Endpoint: Resources: Test cases: T畉o test case 董n gi畉n validate cho c叩c tr動畛ng h畛p ng k箪 ti kho畉n: ng k箪 failed do username ch畛a k箪 t畛 s畛 ng k箪 failed do email 達 t畛n t畉i

Editor's Notes

  • #6: N坦i 董n gi畉n, API l c叩i c畉u n畛i gi畛a client v server. Client 畛 但y c坦 th畛 l m叩y t鱈nh, i畛n tho畉i s畛 d畛ng h畛 i畛u hnh kh叩c nhau v 動畛c vi畉t b畉ng nh畛ng ng担n ng畛 kh叩c nhau. T動董ng t畛, server back-end c滴ng 動畛c vi畉t b畉ng c叩c ng担n ng畛 kh叩c nhau. 畛 2 th畉ng ny c坦 th畛 n坦i chuy畛n 動畛c v畛i nhau ch炭ng ph畉i n坦i c湛ng 1 ng担n ng畛. Ng担n ng畛 畉y ch鱈nh l API.
  • #7: ki畛m th畛 API l th畛 nghi畛m m trong 坦 b畉n s畛 d畛ng ph畉n m畛m 畛 g畛i t畛i API, nh畉n k畉t qu畉 畉u ra v ghi l畉i ph畉n h畛i c畛a h畛 th畛ng. Kh担ng t畉p trung vo giao di畛n m ch畛 y畉u t畉p trung vo l畛p business logic layer c畛a ph畉n m畛m.
  • #8: D動畛i 但y l m畛t s畛 v鱈 d畛 v畛 c叩c bi ki畛m tra b畉o m畉t ph畛 bi畉n m API: API 動a ra gi叩 tr畛 c畛a 畛ng d畛ng. 坦 l lm cho i畛n tho畉i c畛a ch炭ng ta "th担ng minh" v 坦 l nh畛ng g狸 h畛p l箪 h坦a business processes. N畉u b畉t k畛 API no kh担ng ho畉t 畛ng hi畛u qu畉, n坦 s畉 kh担ng bao gi畛 動畛c ch畉p nh畉n, b畉t k畛 坦 l m畛t API mi畛n ph鱈 hay API m畛. i畛u t畛i t畛 h董n, n畉u m畛t API b畛 ph叩 v畛 v狸 l畛i kh担ng 動畛c ph叩t hi畛n, n坦 kh担ng ch畛 c坦 th畛 ph叩 v畛 m畛t 畛ng d畛ng duy nh畉t m c嘆n l m畛t chu畛i quy tr狸nh nghi畛p v畛 g畉n li畛n v畛i n坦.
  • #9: D動畛i 但y l m畛t s畛 v鱈 d畛 v畛 c叩c bi ki畛m tra b畉o m畉t ph畛 bi畉n m API: API 動a ra gi叩 tr畛 c畛a 畛ng d畛ng. 坦 l lm cho i畛n tho畉i c畛a ch炭ng ta "th担ng minh" v 坦 l nh畛ng g狸 h畛p l箪 h坦a business processes. N畉u b畉t k畛 API no kh担ng ho畉t 畛ng hi畛u qu畉, n坦 s畉 kh担ng bao gi畛 動畛c ch畉p nh畉n, b畉t k畛 坦 l m畛t API mi畛n ph鱈 hay API m畛. i畛u t畛i t畛 h董n, n畉u m畛t API b畛 ph叩 v畛 v狸 l畛i kh担ng 動畛c ph叩t hi畛n, n坦 kh担ng ch畛 c坦 th畛 ph叩 v畛 m畛t 畛ng d畛ng duy nh畉t m c嘆n l m畛t chu畛i quy tr狸nh nghi畛p v畛 g畉n li畛n v畛i n坦.
  • #11: 畛i t動畛ng m畛c ti棚u l ai? Ai l ng動畛i d湛ng API 畉n c畛a b畉n? Nh畛ng m担i tr動畛ng no n棚n s畛 d畛ng API nh動 th畉 no? B畉n ang th畛 nghi畛m nh畛ng kh鱈a c畉nh no? B畉n ang th畛 nghi畛m nh畛ng v畉n 畛 g狸? 畛 動u ti棚n trong ki畛m th畛 API? i畛u g狸 s畉 x畉y ra trong nh畛ng tr動畛ng h畛p b狸nh th動畛ng? i畛u g狸 c坦 th畛 x畉y ra trong nh畛ng tr動畛ng h畛p b畉t th動畛ng? X叩c 畛nh Pass/ Fail ? D畛 li畛u 畉u ra mong mu畛n? Chu畛i s畛 ki畛n l g狸? API no kh叩c c坦 th畛 t動董ng t叩c v畛i API ny? Ai trong nh坦m c畛a b畉n c坦 tr叩ch nhi畛m ki畛m tra c叩i g狸?
  • #12: Functionality testing - Ki畛m tra ch畛c nng : API ho畉t 畛n. Usability testing - Ki畛m tra kh畉 nng s畛 d畛ng: API r畉t d畛 s畛 d畛ng. Reliability testing - Th畛 nghi畛m 畛 tin c畉y: API c坦 th畛 動畛c k畉t n畛i li棚n t畛c v d畉n 畉n k畉t qu畉 nh畉t qu叩n. Load testing - Ki畛m th畛 t畉i: API c坦 th畛 x畛 l箪 m畛t s畛 l動畛ng l畛n c叩c request. Creativity testing - Th畛 nghi畛m s叩ng t畉o: API c坦 th畛 x畛 l箪 動畛c s畛 d畛ng theo nh畛ng c叩ch kh叩c nhau. Security testing - Ki畛m tra b畉o m畉t: API 達 x叩c 畛nh y棚u c畉u b畉o m畉t bao g畛m x叩c th畛c, cho ph辿p v i畛u khi畛n truy c畉p. API documentation testing - Ki畛m th畛 ti li畛u API : c嘆n 動畛c g畛i l ki畛m tra ph叩t hi畛n, ti li畛u API cung c畉p 畉y 畛 c叩c th担ng tin 畛 t動董ng t叩c v畛i API v d畛 dng h動畛ng d畉n ng動畛i d湛ng.
  • #13: Functionality testing - Ki畛m tra ch畛c nng : API ho畉t 畛ng. Usability testing - Ki畛m tra kh畉 nng s畛 d畛ng: API r畉t d畛 s畛 d畛ng. Reliability testing - Th畛 nghi畛m 畛 tin c畉y: API c坦 th畛 動畛c k畉t n畛i li棚n t畛c v d畉n 畉n k畉t qu畉 nh畉t qu叩n. Load testing - Ki畛m th畛 t畉i: API c坦 th畛 x畛 l箪 m畛t s畛 l動畛ng l畛n c叩c request. Creativity testing - Th畛 nghi畛m s叩ng t畉o: API c坦 th畛 x畛 l箪 動畛c s畛 d畛ng theo nh畛ng c叩ch kh叩c nhau. Security testing - Ki畛m tra b畉o m畉t: API 達 x叩c 畛nh y棚u c畉u b畉o m畉t bao g畛m x叩c th畛c, cho ph辿p v i畛u khi畛n truy c畉p. API documentation testing - Ki畛m th畛 ti li畛u API : c嘆n 動畛c g畛i l ki畛m tra ph叩t hi畛n, ti li畛u API cung c畉p 畉y 畛 c叩c th担ng tin 畛 t動董ng t叩c v畛i API v d畛 dng h動畛ng d畉n ng動畛i d湛ng.
  • #16: Ki畛m th畛 t畛 畛ng v ki畛m th畛 th畛 c担ng l g狸? Ki畛m th畛 t畛 畛ng API l b畉n s畛 d畛ng tool 畛 test, trong khi ki畛m tra th畛 c担ng l b畉n vi畉t code c畛a ri棚ng b畉n 畛 ki畛m tra API. Ki畛m tra API l m畛t trong nh畛ng l挑nh v畛c m ki畛m th畛 t畛 畛ng 動畛c 叩nh gi叩 cao, 畉c bi畛t l 畛i v畛i DevOps, v嘆ng 畛i ph叩t tri畛n agile v bn giao li棚n t畛c. DevOps l t畛 vi畉t t畉t c畛a c畛m t畛 Development and Operations. Devops l m畛t thu畉t ng畛 trong ph叩t tri畛n ph畉n m畛m 畛 ch畛 m畛i li棚n quan gi畛a qu叩 tr狸nh ph叩t tri畛n v qu叩 tr狸nh v畉n hnh. M畛c 鱈ch c畛a DevOps l畛 thay 畛i v c畉i ti畉n m畛i quan h畛 gi畛a hai qu叩 tr狸nh ny. Khi no c坦 th畛 ki畛m th畛 API t畛 畛ng? Ki畛m th畛 ch畛c nng API. T畉o nhi畛u d畛 li畛u 畛ng 畛 動a vo th畛 nghi畛m API. Thi畉t k畉 th畛 nghi畛m l畉p l畉i. Ph但n t鱈ch ph畉m vi ki畛m tra ch畛c nng 畛 bi畉t b畉n ang b畛 miss TH no. Th畛 nghi畛m ad hoc. S畛 d畛ng command-line 畛 n畛i th畛 nghi畛m v畛i h畛 th畛ng x但y d畛ng c畛a b畉n. Chuy畛n 畛i gi畛a nhi畛u m担i tr動畛ng m畛t c叩ch nhanh ch坦ng, bao g畛m c畉 m担i tr動畛ng ph叩t tri畛n, th畛 nghi畛m v m担i tr動畛ng staging. Ki畛m tra c叩c giao th畛c trong m畛t framework th畛ng nh畉t. S畛 d畛ng nhi畛u b畛 d畛 li畛u c湛ng l炭c 畛 bao g畛m c叩c k畛ch b畉n ki畛m tra kh叩c nhau. 畉y nhanh qu叩 tr狸nh th畛 nghi畛m t畛ng th畛. L畛i ki畛m tra, n董i m b畉n n辿m c叩c l畛i b畉t bu畛c t畉i API 畛 hi畛u n坦 s畉 ph畉n 畛ng nh動 th畉 no. Th畛 nghi畛m b畉ng nhi畛u ng担n ng畛.
  • #19: SOAP UI h畛 tr畛 t畉t c畉 c叩c chu畉n giao th畛c v c担ng ngh畛 畛 test t畉t c畉 c叩c lo畉i API. Ngoi ra SOAP UI c嘆n cho ph辿p ch炭ng ta th畛c hi畛n th畛 nghi畛m phi ch畛c nng nh動 ki畛m th畛 hi畛u su畉t v ki畛m th畛 b畉o m畉t.
  • #20: SOAP UI h畛 tr畛 t畉t c畉 c叩c chu畉n giao th畛c v c担ng ngh畛 畛 test t畉t c畉 c叩c lo畉i API. Ngoi ra SOAP UI c嘆n cho ph辿p ch炭ng ta th畛c hi畛n th畛 nghi畛m phi ch畛c nng nh動 ki畛m th畛 hi畛u su畉t v ki畛m th畛 b畉o m畉t.
  • #23: Resource: l nh畛ng ti nguy棚n m b棚n cung c畉p service cung c畉p cho. Ng動畛i s畛 d畛ng mu畛n d湛ng resource no th狸 g畛i resource 坦 ra, theo 炭ng docs s畛 d畛ng API Trong c湛ng m畛t Resource c坦 th畛 add nhi畛u method kh叩c nhau End Point: 畛a ch畛 c畛a service Method: GET, POST, DELETE, PUT, HEAD, PATCH POST : la method create GET : la method UPDATE : C畉p nh畉t m畛t DELETE : X坦a m畛t PUT Parameter: th担ng tin tr動畛ng s畉 th畛c hi畛n test V鱈 d畛 mu畛n test tr動畛ng 畛a ch畛 mail th狸 add t棚n tr動畛ng mail ch鱈nh x叩c 達 動畛c 畛nh ngh挑a trong docs s畛 d畛ng API TestSuite: Bao g畛m nhi畛u TestCases. C坦 th畛 t畉o nhi畛u TestSuites trong 1 project 畛 h畛 tr畛 nhi畛u test scenerios TestCase: Bao g畛m nhi畛u TestSteps. TestStep: M畛i TestStep th畛c hi畛n ki畛m tra m畛t ch畛c nng c畛a project. Trong m畛t TestStep ki畛m tra m畛t ch畛c nng, c坦 th畛 th畛c hi畛n nhi畛u tr動畛ng h畛p test kh叩c nhau v畛i c叩c d畛 li畛u 畉u vo kh叩c nhau: v鱈 d畛 nh畉p t棚n b狸nh th動畛ng, t棚n di, t棚n c坦 k箪 t畛 畉c bi畛t . C叩c d畛 li畛u 畉u vo mu畛n s畛 d畛ng trong t畉t c畉 c叩c case test th狸 t畉o chung trong 1 Properites V畛i 1d畛 li畛u 畉u vo c畉n t畉o ri棚ng 1 REST request v 1 Property Transfer, v ch畛 畛nh d畛 li畛u 畉u vo 坦 s畉 動畛c truy畛n vo t動董ng 畛ng v畛i Parameter no c畛a request no Properties: Nh畉p data test - c叩c d畛 li畛u 畉u vo m tester c畉n s畛 d畛ng 畛 truy畛n vo c叩c parameter cho m畛i request th畛c hi畛n REST Request: Ch畛n request s畉 th畛c hi畛n (但y ch鱈nh l Request m 達 動畛c add vo setup 畛 b動畛c 2) Properties Transfer: Ch畛 畛nh truy畛n d畛 li畛u Properties no cho REST Request no
  • #24: TestSuite => TestCase => Test Steps => Step ~ T畛ng case test nh畛 nh畉t. Vi畛c c畉u tr炭c testsuite, testcase, test step c滴ng linh ho畉t nh動 vi畛c t畛 ch畛c vi畉t testcase b畉n c畛ng, chia function l畛n => function nh畛 => case test nh畛 nh畉t. C畉n ph但n chia c畉u tr炭c v 畉t t棚n r探 rng 畛 畉m b畉o Nh狸n vo s畉 hi畛u ngay 動畛c ph畉n 坦 check cho ch畛c nng no, check nh畛ng tr動畛ng h畛p no Ng動畛i review c坦 th畛 ph叩t hi畛n ra 動畛c l 達 check 畛 ch畛c nng ch動a, 達 check 畛 c叩c tr動畛ng h畛p test ch動a Properites 畛 nh畉p d畛 li畛u 畉u vo c畉n 動畛c 畉t t棚n r探 rng, kh担ng g但y nh畉m l畉n, v d畛 dng t狸m l畉i khi c畉n ph畉i ch畛nh s畛a l畉i testcase
  • #25: Resource: l nh畛ng ti nguy棚n m b棚n cung c畉p service cung c畉p cho. Ng動畛i s畛 d畛ng mu畛n d湛ng resource no th狸 g畛i resource 坦 ra, theo 炭ng docs s畛 d畛ng API
  • #26: Resource: l nh畛ng ti nguy棚n m b棚n cung c畉p service cung c畉p cho. Ng動畛i s畛 d畛ng mu畛n d湛ng resource no th狸 g畛i resource 坦 ra, theo 炭ng docs s畛 d畛ng API