Chào các bạn đã đến với chủ đề tiếp theo của mình. Trong testing thì tạo data test là 1 việc chắc chắn phải làm, trong automation test thì lại càng cần thiết khi mà phải tạo ra 1 số lượng lớn data. Với mỗi ngôn ngữ lại có rất nhiều cách để tạo data khác nhau, nhưng cách dễ nhất là dùng thư viện có sẵn. Hôm nay, mình sẽ giới thiệu 1 library của Java: Faker.
Nội dung
1. Data Faker là gì?
DataFaker là một thư viện dành cho Java và Kotlin để tạo dữ liệu giả, tự động generate data. Điều này rất hữu ích khi tạo dữ liệu thử nghiệm để điền vào cơ sở dữ liệu, để tạo dữ liệu cho thử nghiệm mang tính demo hoặc ẩn danh dữ liệu từ các thông tin dịch vụ nhạy cảm không cần thiết.
Thư viện này tạo dữ liệu giả tương tự như các trình tạo dữ liệu giả khác, chẳng hạn như:
- Ruby’s faker gem
- Perl’s Data::Faker library
- Python faker package
- PHP faker library
- Javascript Faker.js library
2. Cài đặt thư viện Data Faker
Phiên bản mới nhất của Data Faker là 2.0.1 và được lưu trữ trên Maven Central.
<!-- https://mvnrepository.com/artifact/net.datafaker/datafaker -->
<dependency>
<groupId>net.datafaker</groupId>
<artifactId>datafaker</artifactId>
<version>2.0.1</version>
</dependency>
3. Sử dụng Data Faker
Để sử dụng Data Faker để tạo dữ liệu giả, bạn có thể sử dụng đoạn code sau làm ví dụ:
import net.datafaker.Faker;
Faker faker = new Faker();
//Thông tin người
String name = faker.name().fullName();
String firstName = faker.name().firstName();
String lastName = faker.name().lastName();
//Thông tin đường
String streetAddress = faker.address().streetAddress();
Như vậy là các bạn chỉ cần tạo đối tượng class Faker. Sau đó lấy chấm gọi dùng các hàm nó viết sẵn để lấy dữ liệu giả thôi.
4. Sử dụng vùng ngôn ngữ trong Data Faker
Bạn có thể sử dụng data của các nước khác nhau thông qua Locate trong Java. Mặc định là English tương ứng ký hiệu locate là “en“.
Ví dụ mình muốn dùng tiếng Việt thì dùng ký hiệu “vi“.
package org.example.Topic41;
import net.datafaker.Faker;
import org.testng.annotations.Test;
import java.util.Locale;
public class DataFake {
@Test
public void testDataFaker01() {
Faker faker = new Faker(new Locale("vi"));
String computer = faker.computer().windows();
String name = faker.name().fullName();
String fullAddress = faker.address().fullAddress();
String email = faker.internet().emailAddress();
String password = faker.internet().password();
System.out.println(computer);
System.out.println(name);
System.out.println(fullAddress);
System.out.println(email);
System.out.println(password);
}
}
Kết quả:
Windows Server 2016
Phạm Vinh Sa
Apt. 963 35003 Thủy Square, Cà Mau, AK Y2B 3LL
le.bui@gmail.com
sr968p82700px1z
Lưu ý: class Locate là của Java
Các loại data khác bạn có thể xem thêm tại đây Fake Data Providers
🔆 Nâng cao hơn là bạn viết class utils hoặc helpers riêng để sau này gọi dùng cho tiện.
DataFakerHelpers.java
package utilites;
import net.datafaker.Faker;
import java.util.Locale;
public class DataFakerHelpers {
private static Faker faker;
public static Faker createFaker() {
faker = new Faker(new Locale(ConstantGlobal.LOCATE));
return faker;
}
public static Faker createFakerByLocate(String locateName) {
faker = new Faker(new Locale(locateName));
return faker;
}
public static Faker getFaker() {
if (faker == null) {
faker = createFaker();
}
return faker;
}
public static Faker getFakerByLocate(String locateName) {
faker = createFakerByLocate(locateName);
return faker;
}
public static void setFaker(Faker faker) {
DataFakerHelpers.faker = faker;
}
}
Note: ConstantGlobal
là class lưu các biến static được khai báo giá trị cứng hoặc lấy từ file config properties
public final static String LOCATE = PropertiesHelpers.getValue("LOCATE");
Gọi lại sử dụng:
@Test
public void testDataFaker02() {
String cityName1 = DataFakerHelpers.getFaker().address().cityName();
String cityName2 = DataFakerHelpers.getFakerByLocate("vi").address().cityName();
System.out.println(cityName1);
System.out.println(cityName2);
}
5. Lời kết
Như vậy chúng ta đã tìm hiểu qua cách tạo data test khi làm automation. Các bạn hãy xem lại ví dụ trên và làm lại 1 lần nữa để hiểu bài hơn nhé. Mình hy vọng bài viết này sẽ hữu ích cho các bạn. Cảm ơn các bạn đã theo dõi bài viết của mình. Hẹn gặp lại các bạn ở những chủ đề tiếp theo.
Nguồn:
https://anhtester.com/blog/selenium-java/tao-du-lieu-gia-voi-datafaker