LogoLogo
  • 🏹Lời nói đầu
  • 1. Introduction
  • 💡1.1. Các hoạt động trong 1 vòng kiểm thử
  • 💡1.2. Các cách tiếp cận khi viết automation test
  • 🔮1.3. Con đường phát triển của một kỹ sư kiểm thử phần mềm
  • ✅1.4. Quy trình của một dự án kiểm thử tự động
  • 🤖1.5. Các Framework trong kiểm thử tự động
  • 💎1.6. Selenium Java Basic mindmap
  • 📜1.7. Test cases
  • 2. Setup new maven project
    • ☕2.1. Install Java JDK
    • ☕2.2. Setup Maven
    • ☕2.3 Add Maven Dependencies
    • ☕2.4. Java practices
      • ⌨️2.4. Java Coding Practice
      • 📔Java Stream
        • 🍀Java 8 Stream - Xử lý Array, List nhanh gọn
          • 🛵1. find person that has mass >100
            • 🚜2. total mass of characters
            • 🚍3. total height of characters
            • 🚲4. get list name of person
            • 🛴5. find max mass person
            • 🚒6. find smallest person
            • 🚂7. sort by name
            • 🏎️8. sort by mass
      • 📁Logging
        • 🍏Log4j 2
  • 3. browsers
    • 🚚3.1. What is WebDriver?
    • 3.2. Chrome Browser
      • 🕸️Open Chrome Browser
        • Capture Performance metrics in chrome with selenium 4.0
        • Open Chrome Browser in Mobile mode
        • How to set specified chrome version to start
        • Interception Network tab
        • Open Chrome Browser - Headless mode
      • Fake GeoLocation
    • 3.3. Open Firefox Browser
      • Open Firefox Browser - Headless mode
    • 3.4. Open Edge Browser (Chromium)
    • 3.5. Open Safari browser
  • 🌞4. Inspect locators
  • 4.1. Understand HTML structure
  • 4.2. Locator Table
  • 4.3. Standard Naming Convention for UI Elements to Use with Selenium Locators
  • 4.4. FindElement
  • 4.5. Locating elements with XPath axis
  • 🍏5. Test Cases
    • 5.1. Form Authentication
    • 5.2. Drop Down
    • 5.3. Checkboxes
    • 5.4. Hyperlink
    • 5.5. Web Table
    • 5.6. JavaScript Alert
    • 5.7. Nest Frames
    • 5.8. Context menu
    • 5.9. Hover
    • 5.10. Broken Link
    • 5.11. Click Element via JS
    • 5.12. Wait for loading
    • 5.13. Pass params though XPath string
    • 5.14. Date picker
    • 5.15. Capture Screenshot
  • 6. TestNG
    • Annotations
    • testng.xml
      • parameter
      • Filter by group
      • Listener
      • Parallel
  • Capture screenshot when test failed
  • 🍐7. Page Object Model
    • What is?
    • Approach 1: Using String for exposing elements
    • Approach 2: Using By for exposing elements
    • Approach 3: Using PageFactory for exposing elements
    • Todo MVC sample page
      • page
      • supports
      • testcases
  • 8. Circle CI - Github Actions
    • Integrate Circle CI
  • 🥞9. Owner methods
    • Selenium owner methods
  • Interview
    • How I interview tester
      • 35 Challenging Interview Questions for Testers
    • Git căn bản
    • VSCODE
Powered by GitBook

Copyright @testingvn.com

On this page

Was this helpful?

  1. 2. Setup new maven project
  2. 2.4. Java practices
  3. Java Stream

Java 8 Stream - Xử lý Array, List nhanh gọn

Trong rất nhiều trường hợp kiểm thử tự động, bạn phải xử lý raw data là dạng mảng hay chuỗi dữ liệu. Tiêu biểu là một Json Array như dưới đây.

PreviousJava StreamNext1. find person that has mass >100

Last updated 1 year ago

Was this helpful?

Đây là 1 Json Array về các nhân vật trong bộ film "Star War". Mình dùng nó để thực hành các hàm hay ho của Java Stream nha

[
  {
    "name": "Luke Skywalker",
    "height": "172",
    "mass": "77",
    "hair_color": "blond",
    "skin_color": "fair",
    "eye_color": "blue",
    "birth_year": "19BBY",
    "gender": "male"
  },
  {
    "name": "Darth Vader",
    "height": "202",
    "mass": "136",
    "hair_color": "none",
    "skin_color": "white",
    "eye_color": "yellow",
    "birth_year": "41.9BBY",
    "gender": "male"
  },
  {
    "name": "Leia Organa",
    "height": "150",
    "mass": "49",
    "hair_color": "brown",
    "skin_color": "light",
    "eye_color": "brown",
    "birth_year": "19BBY",
    "gender": "female"
  },
  {
    "name": "Owen Lars",
    "height": "178",
    "mass": "120",
    "hair_color": "brown, grey",
    "skin_color": "light",
    "eye_color": "blue",
    "birth_year": "52BBY",
    "gender": "male"
  },
  {
    "name": "Beru Whitesun lars",
    "height": "165",
    "mass": "75",
    "hair_color": "brown",
    "skin_color": "light",
    "eye_color": "blue",
    "birth_year": "47BBY",
    "gender": "female"
  },
  {
    "name": "Biggs Darklighter",
    "height": "183",
    "mass": "84",
    "hair_color": "black",
    "skin_color": "light",
    "eye_color": "brown",
    "birth_year": "24BBY",
    "gender": "male"
  },
  {
    "name": "Obi-Wan Kenobi",
    "height": "182",
    "mass": "77",
    "hair_color": "auburn, white",
    "skin_color": "fair",
    "eye_color": "blue-gray",
    "birth_year": "57BBY",
    "gender": "male"
  }
]
package com.tvn.elements;

public class Person {
    private String name;
    private int height;
    private int mass;
    private String hair_color;
    private String skin_color;
    private String eye_color;
    private String birth_year;
    private String gender;

    public Person(String name, int height, int mass, String hair_color, String skin_color, String eye_color, String birth_year, String gender) {
        this.name = name;
        this.height = height;
        this.mass = mass;
        this.hair_color = hair_color;
        this.skin_color = skin_color;
        this.eye_color = eye_color;
        this.birth_year = birth_year;
        this.gender = gender;
    }

    public void info(){
        System.out.printf("name: %s\n",this.name);
        System.out.printf("height: %d\n",this.height);
        System.out.printf("mass: %d\n",this.mass);
        System.out.printf("hair_color: %s\n",this.hair_color);
        System.out.printf("skin_color: %s\n",this.skin_color);
        System.out.printf("eye_color: %s\n",this.eye_color);
        System.out.printf("birth_year: %s\n",this.birth_year);
        System.out.printf("gender: %s\n",this.gender);
        System.out.println("--------------------------");
    }

    public String getName() {
        return name;
    }

    public int getHeight() {
        return height;
    }

    public int getMass() {
        return mass;
    }

    public String getHair_color() {
        return hair_color;
    }

    public String getSkin_color() {
        return skin_color;
    }

    public String getEye_color() {
        return eye_color;
    }

    public String getBirth_year() {
        return birth_year;
    }

    public String getGender() {
        return gender;
    }
}
 public static void main(String[] args) {
        Person person1 = new Person("Luke Skywalker", 172, 77, "blond", "fair", "blue", "19BBY", "male");
        Person person2 = new Person("Darth Vader", 202, 136, "none", "white", "yellow", "41.9BBY", "male");
        Person person3 = new Person("Leia Organa", 150, 49, "brown", "light", "brown", "19BBY", "female");
        Person person4 = new Person("Owen Lars", 178, 120, "brown, grey", "light", "blue", "52BBY", "male");
        Person person5 = new Person("Beru Whitesun lars", 165, 75, "brown", "light", "blue", "47BBY", "female");
        Person person6 = new Person("Biggs Darklighter", 183, 84, "black", "light", "brown", "24BBY", "male");
        Person person7 = new Person("Obi-Wan Kenobi", 182, 77, "auburn, white", "fair", "blue-gray", "57BBY", "male");

        //Convert JSON ARRAY TO ARRAY OBJECT
        List<Person> characters = Arrays.asList(person1, person2, person3, person4, person5, person6, person7);
        characters.forEach(Person::info);
}

Và để chuyển thể Json ở trên thành đối tượng trong Java thì mình áp dụng kỹ thuật (Plain Old Java Object) để tạo một class với constructor và getters methods như dưới đây.

Gán các giá trị vào đối tượng và lưu nó vào một danh sách List<Person> chúng ra sẵn sàng cho thực hành rồi nhá

☕
📔
🍀
🎉
🎉
🎉
POJO