Как я могу анализировать теги img с помощью k6/loadimpact?

Сейчас я использую нагрузочное тестирование k6 для своей работы, и у меня возникла проблема. Как я могу парсить ссылки с сайта? (уже использую официальные примеры для ссылок href, но не понимаю, как изменить это для работы с изображениями)

например пробую с этим сайтом - top-tuning.ru (это один из примеров в моей задаче на работе). Мне нужен скрипт для разбора ссылок img и hrefs. Я уже пробую официальные примеры и могу парсить hrefs, head titles, langAttr, но у меня нет возможности сделать то же самое с img. эта структура работает очень хорошо:

const res = http.get("top-tuning.ru/"); 
const doc = parseHTML(res); 
const pageTitle = doc.find('head title').text(); 
const langAttr = doc.find('html').attr('lang');
doc.find("body").toArray().forEach(function (item) {
console.log(item.attr("href"));});

person Maxwell    schedule 02.12.2020    source источник
comment
Я уже ответил вам на форуме сообщества. Вы должны рассказать нам, что вы пробовали и что не сработало, чтобы лучше помочь вам :). Вот ответ на довольно близкий вопрос, который, вероятно, поможет вам stackoverflow.com/a/61075801/5427244   -  person Михаил Стойков    schedule 02.12.2020
comment
я не понимаю, как использовать ваш скрипт в ответ, чтобы использовать его с моим сайтом для поиска ссылок img   -  person Maxwell    schedule 02.12.2020
comment
Сценарий, на который я ссылался, обрабатывает гораздо больше, чем просто изображения. И это не мое. Можете ли вы хотя бы обновить свой вопрос, указав, что вы пробовали, и страницу, с которой вы это делаете (это может быть не ваша настоящая страница, а просто какая-то общедоступная страница), чтобы мы могли лучше диагностировать, что именно не работает? Также то, что вы использовали для ссылок, вероятно, также поможет.   -  person Михаил Стойков    schedule 02.12.2020
comment
но каждая попытка с изображениями в другом коде давала мне результат ‹object object› или ‹undefined› и ‹›.   -  person Maxwell    schedule 02.12.2020


Ответы (1)


С помощью следующего скрипта я получаю ваши изображения:

import http from "k6/http";
import { parseHTML } from "k6/html";

export default function() {
    const res = http.get("https://top-tuning.ru/"); 
    const doc = parseHTML(res.body); 
    const pageTitle = doc.find('head title').text(); 
    const langAttr = doc.find('html').attr('lang');
    doc.find("img").toArray().forEach(function (idx) {
        console.log(idx.attr("src"));
    });
}

Части импорта, которые мне нужно изменить:

  1. вам нужен протокол (https в данном случае), чтобы сделать запрос
  2. вам нужно предоставить тело, а не объект ответа для parseHTML

После этого - все заработало :)

Я надеюсь, что это поможет вам, вы также можете использовать console.log, Object.keys(object) и JSON.stringify(object), когда вы не знаете, что происходит

person Михаил Стойков    schedule 02.12.2020
comment
Благодарность! ты обалденный - person Maxwell; 02.12.2020