This commit is contained in:
Tiệp Sunflower
2023-03-06 14:23:39 +07:00
commit aa9c76c82f
2234 changed files with 449471 additions and 0 deletions

204
test/add_to_cart.js Normal file
View File

@@ -0,0 +1,204 @@
// ====== ** Thay đổi thông tin test ở đây ** ======
// Trình duyệt test
const Browser = 'chrome'; // Lựa chọn: chrome, firefox
const DOMAIN = "https://demopc8.hurasoft.com/?show_template=xstore"; // Tên miền
var text_search = 'case'; // Từ khóa tìm kiếm
var productNameClass = '.p-name'; // Class chứa url sản phẩm
var buttonAddProductId = '#add_to_cart' // Id/class nút thêm sp vào giỏ ở trang chi tiết sản phẩm
// Thông tin người dùng, sử dụng để nhập vào form: Mua hàng, đăng ký, đăng nhập, bình luận,.....
var user_name = 'Test giỏ hàng'; // ==== Tên
var user_email = 'test@mail.com'; // ==== Email
var user_mobile = '0987654321'; // ==== Số điện thoại
var user_address = 'Số 3 ngõ 18 Yên Lãng'; // ==== Địa chỉ
var user_province = 'Hà Nội'; // ==== Tỉnh/Thành phố
var user_district = 'Quận Đống Đa'; // ==== Quận/Huyện
var user_ward = 'Phường Láng Hạ'; // ==== Phường/Xã
var user_content = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.'; // Nội dung
// ============================================================================================================
// ==================================== ** KHÔNG THAY ĐỔI ** ====================================
const { Builder, By, Select, until, implicitlyWait } = require("selenium-webdriver");
const { Driver } = require("selenium-webdriver/chrome");
require('chromedriver');
require('selenium-webdriver/chrome');
(async function AddToCartTest() {
let driver = await new Builder().forBrowser(Browser).build();
try {
// Setup
await driver.get(DOMAIN);
await driver.manage().window().maximize();
await driver.manage().setTimeouts({ implicit: 3000, pageLoad: 3000, script: 3000 })
driver.executeScript(`
var jquery_script = document.createElement('script');
jquery_script.src = 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.3/jquery.min.js';
document.getElementsByTagName('head')[0].appendChild(jquery_script);
`)
driver.executeScript('$ = window.jQuery;'); // Load jQuery
// == End Setup
// 1. Header: Tìm kiếm sp
var input_search = await driver.findElement(By.xpath("//input[@name='q']"));
await testSearchWeb(driver, text_search, input_search).then(function redirectProductDetail() {
goToProductDetail(driver, productNameClass);
});
// 2. Chi tiết sp: Thêm sp vào giỏ
await driver.wait(until.elementLocated(By.css(buttonAddProductId))).click();
// 3. Giỏ hàng: Gửi đơn hàng
await submitCartForm(driver);
} finally {
checkListWeb(driver);
setTimeout(() => {
driver.quit();
}, 5000)
}
})();
// == Header: Test hiển thị danh sách sản phẩm tìm kiếm
async function testSearchWeb(driver, text_search, input_search) {
await driver.actions()
.move({ origin: input_search })
.pause(1000)
.doubleClick()
.sendKeys(text_search)
.pause(2000)
.perform();
await driver.findElement(By.xpath("//button[@type='submit']")).click(); //== Kiểm tra đến trang tìm kiếm
await checkListWeb(driver);
}
// == Ô sản phẩm: Điều hướng đến trang chi tiết sản phẩm
async function goToProductDetail(driver, productNameClass) {
var productUrl = driver.findElement(By.css(productNameClass));
await driver.actions()
.move({ origin: productUrl })
.pause(1000)
.press()
.perform();
await productUrl.click();
await checkListWeb(driver);
}
// == Giỏ hàng: Nhập thông tin người dùng và gửi
async function submitCartForm(driver) {
await driver.findElement(By.xpath("//input[@name='user_info[name]']")).sendKeys(user_name);
await driver.findElement(By.xpath("//input[@name='user_info[email]']")).sendKeys(user_email);
await driver.findElement(By.xpath("//input[@name='user_info[mobile]']")).sendKeys(user_mobile);
await driver.findElement(By.xpath("//input[@name='user_info[address]']")).sendKeys(user_address);
await new Select(driver.findElement(By.xpath("//select[@name='user_info[province]']"))).selectByVisibleText(user_province);
await new Select(driver.findElement(By.xpath("//select[@name='user_info[district]']"))).selectByVisibleText(user_district);
await new Select(driver.findElement(By.xpath("//select[@name='user_info[ward]']"))).selectByVisibleText(user_ward);
await driver.findElement(By.css("form[action='/send-cart']")).submit();
await checkListWeb(driver);
}
// Hiển thị bảng danh sách test
async function checkListWeb(driver) {
await driver.executeScript(CreateTableCheck);
await driver.executeScript(checkSearch, check_list);
await driver.executeScript(checkAddCart, check_list);
await driver.executeScript(checkSendCart, check_list);
}
function CreateTableCheck() {
var table_container = document.createElement('div');
table_container.id = 'js-table-container';
document.body.appendChild(table_container);
$("#js-table-container").html(`
<style>#js-table-check td, #js-table-check th {border: 1px solid #ccc;padding: 7px 10px;}</style>
<div id="js-table-check" style="position:fixed;left:10px;bottom:50px;z-index: 999;background:#fff;box-shadow:0 1px 5px rgb(0 0 0 / 30%);padding:10px;">
<table>
<thead>
<tr align="center"><th>Danh sách</th> <th>Trạng thái</th></tr>
</thead>
<tbody> <!-- //check list --> </tbody>
</table>
</div>
`);
}
var check_list = 'function checkListFormFunc(condition, results) {if (condition) {$("#js-table-check tbody").append(`<tr><td>${results}:</td> <td align="center" style="font-weight:700;color:green;">OK</td></tr>`)} else {$("#js-table-check tbody").append(`<tr><td>${results}:</td> <td align="center" style="font-weight:700;color:red;">FALSE</td></tr>`)}}';
var tableCheck = '$("#js-table-check")';
// ============= *** Danh sách kiểm tra *** =============
// Kiểm tra tìm kiếm
function checkSearch(check_list, text_search) {
eval(check_list);
var check_input = '';
var current_url = location.search;
if (current_url.includes = '?q=' + text_search || $('input[name="q"]').val() != '') {
check_input = 'ok';
}
checkListFormFunc(check_input !== '', 'Kiểm tra tìm kiếm sản phẩm')
}
// Kiểm tra thêm sản phẩm vào giỏ hàng
function checkAddCart(check_list) {
eval(check_list);
var current_url = location.pathname;
var check_quantity = '';
if (current_url == '/cart' || current_url == '/send-cart') {
check_quantity = 'ok';
}
checkListFormFunc(check_quantity !== '', 'Kiểm tra thêm sản phẩm vào giỏ hàng');
}
// Kiểm tra gửi đơn hàng
function checkSendCart(check_list) {
eval(check_list);
var check_sendCart = $('.content-send h1').text().trim();
var check_text = '';
if (check_sendCart == 'Đặt hàng thành công') {
check_text = 'Đặt hàng thành công'
}
checkListFormFunc(check_text !== '', 'Kiểm tra gửi đơn hàng');
}