มารู้จัก Web Element Locator กัน

ทำไม Tester ต้องรู้จัก Web Element Locator ก็เพราะว่าทุกสิ่งทุกอย่างที่ทุกคนเห็นบนหน้าเว็บ มันคือ Web Element และ Robot Framework ก็รู้จัก หน้าเว็บจาก  Element Locator ที่เหล่า Tester กำหนดให้ในแต่ละ Test script นั่นเองค่ะ ดังนั้น Tester ควรจะต้องรู้จัก Element Locator และวิธีการใช้งานค่ะ ตัวอย่าง Locator ของ Selenium library ดังรูป Element Locator มีหลายประเภท ดังนี้ 1. Id Element ที่มีการกำหนด id ไว้ ซึ่งเราควรจะเลือกใช้ locator นี้ค่ะ มีความเสถียรมากสุด เพราะถึงแม้ว่าจะมีการเปลี่ยนย้ายตำแหน่งของ Element นี้ จะไม่กระทบ Test script ของเราเลยค่ะ ตัวอย่าง locator ::  id=u_0_n; 2. Name Element ที่มีการกำหนด name  ไว้ ตัวอย่าง locator ::  name=lastname 3. Css Selector Css เอาไว้กำหนด style รูปแบบของ element นั้นๆ ตัวอย่าง locator :: css=input#u_0_s  4. XPath XPath คืือ เป็นเส้นทางการเข้าถึงโครงสร้างภายในส่วนต่างๆของ Web ตัวอย่าง locator :: xpath=//*[@id=”u_0_z”] *เพื่อ performance ของการทดสอบที่ดี ขอแนะนำว่า เราควรจะใช้ locator ลำดับที่ 1 จนถึง 4 ตามลำดับเลยจ้า ID –> NAME –> CSS –> XPATH ตัวอย่าง Test Script ที่ใช้ Element Locator รูปแบบต่างๆ วิธีการหา Element Locator หากเราต้องการหา Locator  ในหน้า Web สามารถทำได้ง่ายมากๆ ดังนี้ Open website ที่ต้องการจะทดสอบขึ้นมา เอาเมาส์ไปจิ้ม ตรง Element ที่ต้องการ กดปุ่ม F12 เท่านี้เราก็เริ่มเขียน Test script โดยใช้ Locator เพื่อทดสอบ Web site กันได้แล้วค่ะ

Read More »

Run automated test ด้วย Chrome แบบที่ไม่มี web browser แสดงขึ้นมา (Headless Mode)

สืบเนื่องจากการทำ Automated test แล้วรำคาญการเปิดหน้าต่างการทำงานขึ้นมา เพราะอยากจะรู้แค่ผลลัพธ์ก็เท่านั้น วันนี้เลยมาเสนอ Headless Mode feature เป็นของ Chrome สามารถ run automated test ด้วย Chrome แบบที่ไม่มี web browser แสดงขึ้นมา หรือที่เรียกกันว่า Headless Mode นั่นเองค่ะ ไม่ต้องDownload อะไรใด ๆ เลย เพียงแค่เราติดตั้ง Chrome เท่านั้นก็สามารถใช้งาน feature นี้ได้แร่ะ (Version 60 ขึ้นไป) ขั้นตอนมาดูกันเลย ในตัวอย่างนี้จะเป็นการเขียน Code ทดสอบด้วย Selenium Library จ้า การตั้งค่า Headless Mode คำสั่งดังนี้ ตัวอย่าง Test script สำหรับรันเทส web แบบ Headless mode ตามด้านล่างเลยค่ะ หาก Run แล้วจะพบว่าไม่มี Chrome Browser เปิดขึ้นมาให้กวนใจอีกต่อไป แต่เมื่อเข้าไปดูใน Test Report ก็จะพบว่ายังสามารถ Run Automated Test ได้ถูกต้องด้วยค่ะ

Read More »

วิธีเชื่อมต่อ PostgreSQL จาก python

ในการเชื่อมต่อกับ PostgreSQL จาก Python นั้น จะต้องใช้ Package ‘psycopg2’ คำสั่งในการติดตั้งคือ วิธีการเรียกใช้จาก python import numpy as np import pandas as pd import matplotlib.pyplot as plt import psycopg2 from IPython.display import display, HTML # used to print out pretty pandas dataframes import matplotlib.dates as dates import matplotlib.lines as mlines %matplotlib inline plt.style.use(‘ggplot’) # specify user/password/where the database is sqluser = ‘username’ sqlpass = ‘userpasswordgohere’ dbname = ‘dbname’ schema_name = ‘someschema’ host = ‘host.postgresql.server’ query_schema = ‘SET search_path to ‘ + schema_name + ‘;’ # connect to the database con = psycopg2.connect(dbname=dbname, user=sqluser, password=sqlpass, host=host) query = query_schema + ‘select * from sometable’ df = pd.read_sql_query(query,con) ก็จะได้ df เป็น Dataframe เอาไปใช้งานต่อได้ จบ

Read More »

วิธีสร้าง User บน PostgreSQL ให้สามารถเข้าถึงฐานข้อมูลได้แบบ Read-Only

บันทึกเอาไว้สั้น ๆ ในที่นี้ ต้องการสร้างผู้ใช้ ‘username’ ให้มีรหัสผ่านเป็น ‘userpasswordgohere’ ให้สามารถใช้งาน ‘someschema’ โดยให้ใช้เฉพาะ ‘SELECT’ ได้กับทุก Tables ใน someschema บน PostgreSQL ใช้คำสั่งนี้ ในการสร้างและ Grant สิทธิ์ จบ

Read More »

python #07 Sentiment Analysis – IMDB

ต่อจาก python #06 – Sentiment Analysis ด้วย Keras + Tensorflow เนื่องจากเรา Train โมเดล ด้วย ประโยคเพียง 9 ประโยค ซึ่งประกอบด้วยคำ 19 คำ เมื่อถูกทดสอบด้วยคำที่ “ไม่เคยเจอมาก่อน” ก็จะไม่สามารถวิเคราะห์ได้ถูกต้องนัก ยิ่ง ถ้าเจอกับประโยคที่ ไม่มีคำที่เคยเจออยู่เลย ก็จะได้ Zero Vector ไปเลย (ในทางเทคนิค สามารถตั้งค่าห้ Unknown Word มี Index = 1 ได้) แก้ไขอย่างไร ? ตอนนี้ เปรียบเหมือนโมเดลเป็นเด็กเล็ก รู้จักคำแค่ 19 คำ พอมีคำใหม่ ๆ มาก็จะไม่เข้าใจ วิธีการคือ ต้องสอนคำใหม่ ๆ และรูปแบบประโยคใหม่ ๆ ให้เค้า … แล้วจะหามาจากไหนหล่ะ ?? IMDB Movie reviews sentiment classification เป็น Dataset การรีวิวภาพยนต์ 25,000 รายการ มี Label เป็น Positive/Negative รายละเอียดตามนี้ https://keras.io/datasets/#imdb-movie-reviews-sentiment-classification เริ่มต้นใช้งาน [ดู Jupyter Notebook ] ทำตามตัวอย่างของ Keras ซึ่งมีข้อสังเกตว่า oov_char หรือ เมื่อเจอคำที่ไม่เคยรู้จักมากก่อน (Out-Of-Vocab) จะแทนค่าด้วย 2 และ index_from เริ่มจาก 3 (0,1 จะไม่ใช้ ส่วน 2 แทนคำที่ไม่รู้จัก ดังนั้น index แรกของคำที่ใช้คือ 3) จะเป็นคำที่พบ “มากที่สุด” ไล่ตามลำดับไป (ยิ่งตัวเลข index มาก ยิ่งมีการใช้น้อย) สำรวจข้อมูล พบว่า ถ้าเอาคำทั้งหมดจากรีวิวทั้งหมดมา จะมีคำทั้งหมด 88,584 คำ และ ประโยคที่มีความยาวสูงสุดคือ 2,494 คำ Idea of Reverse IMDB word index Source: Source: https://jamesmccaffrey.wordpress.com/2018/04/27/inspecting-the-imdb-dataset-reverse-mapping-the-index-values/imdb_review_index_to_words/ แล้ว ส่วนใหญ่รีวิวจะมีความยาวกี่คำ ?Idea จาก http://www.awesomestats.in/python-dl-imdb-classification-1/ ถ้าเอา ค่า Mean + 2 SD ก็จะพบว่า ความยาวประมาณ 591 คำ ข้อมูลจะอยู่ในรูป Sequence หรือ Vector of Integer แล้ว ต่อไป ก็ Pad ข้อมูล และ Truncate ให้อยู่ในความยาวที่กำหนด (ในที่นี้คือ most_sentence_len = 591) ข้อมูลหน้าตาประมาณนี้ แบบที่ 1 ใช้ข้อมูลทั้งหมด ทดลองใช้ คำทั้งหมดในจากข้อมูล IMDB (88,584 คำ) และ ใช้ความยาวประโยค 591 คำ ผลที่ได้ ไม่ค่อยดี แบบที่ 2 กำหนดให้ Vocab ที่รู้จัก เป็น 500 คำแรกที่ใช้มากที่สุด และกำหนดความยาวประโยคสูงสุด 100 คำ ผลที่ได้ ดูดีขึ้น(สังเกต Param ใน Embedding Layer = 16,000 และ เวลที่ใช้ต่อ Epoch ประมาณ 60-70 วินาที)

Read More »