พอดีมีน้อง QA ในทีมท่านนึง เจอปัญหาต้องดูแล robotframework & seleniumlibrary คนละ version ทำให้ต้องสลับ keyword ไปมาระหว่างพัฒนาเทส วันนี้เลยขอเสนอท่า venv (virtual environments) เพื่อแก้ปัญหานี้กัน
virtual environment คืออะไร ?
virtual environment คือความพยายามที่จะสร้าง Python environment ให้เหมาะสมสำหรับการทำงาน ปัญหาหลัก ๆ ที่เรามักจะเจอกันคือการใช้ dependency library ที่ไม่ตรงกัน version กัน
เช่น
- โปรเจค A ต้องการ lib
X==1.0.0
,Y==2.0.0
- โปรเจค B ต้องการ lib
X==2.0.0
และZ==3.0.0
หรือบ้างครั้งเราแค่อยากทดลองลง upgrade version และทดสอบดูว่ามีอะไรพังไหมเท่านั้น ดังนั้นถ้าเราสามารถสร้างและแยก environment ให้สามารถสลับกันไปมาได้ระหว่าง lib X==1.0.0
กับ X==2.0.0
ได้ก็จะสะดวกไม่น้อยเลย
ขั้นแรก check python version กันก่อน
C:\Users\tumit>python --version
Python 3.11.2
ซึ่งตั้งแต่ version 3.5 ขึ้นไป venv ถือว่าเป็นท่าที่ recommended ในการสร้าง virtual environments
เริ่มสร้าง virtual environment และใช้ สำหรับ seleniumlibrary v.5 กัน
ต่อมาเราจะมาสร้าง virtual environment สำหรับลง seleniumlibrary v.5 เพื่อ support robot เก่า ๆ ที่อาจจะยังไม่พร้อมที่จะ move on ไป version ใหม่ เริ่มจากคำสั่ง
C:\Users\tumit>python -m venv rf-selenium-5 // ชื่อตามที่เราอยากได้เลย
มันจะทำการสร้าง folder ที่ชื่อ rf-selenium-5 ให้เราประมาณนี้
C:\Users\tumit>dir .\rf-selenium-5
Volume in drive C has no label.
Volume Serial Number is EXXX-0XXB
Directory of C:\Users\tumit\rf-selenium-5
02/24/2023 07:11 AM <DIR> .
02/24/2023 07:11 AM <DIR> ..
02/24/2023 07:11 AM <DIR> Include
02/24/2023 07:11 AM <DIR> Lib
02/24/2023 07:11 AM 270 pyvenv.cfg
02/24/2023 07:11 AM <DIR> Scripts
1 File(s) 270 bytes
5 Dir(s) 74,569,793,536 bytes free
จากนั้นเราก็จะทำการ activate เพื่อเลือก environment นี้ในการพัฒนากันด้วยคำสั่ง
// คำสั้ง activate จะอยู่ใน path นี้นั้นเอง
C:\Users\tumit>.\rf-selenium-5\Scripts\activate
จะสังเกตุว่าที่ prompt ของเราจะมี (rf-selenium-5) ที่แสดงว่าเรา active อยู่ที่ environment นี้แล้ว
จากนั้นเราก็ install library ใน version ที่เราต้องการได้เลยเช่น
pip install robotframework
pip install robotframework-seleniumlibrary==5.0.0
เราสามารถใช้คำสั้ง pip freeze
เพื่อแสดง dependency libraries ได้ประมาณนี้
และถ้าต้องการจะออกจาก environment นี้ก็สามารถทำได้ ด้วย command deactivate
ง่าย ๆเลย
จบปิ๊ง ~
references:
Top comments (0)