ermek6
@ermek6
::Живу с удовольствием::

Как в postman шаблоне сделать цикл в цикле?

Всем привет!
Имею следующее содержимое Tests для Postman'a
let response = pm.response.json();

let template = `
<html>
    <head>
    <style>
    h1 {
        color: cyan;
        font-family: Courier;
        background-color: rgba(0, 0, 0, 0.03);
    }
    h1:hover {
        color: blue;
    }
    table, td, th {
        margin: 20px;
        padding: 5pt;
        border: 1px solid rgba(0, 0, 0, 0.125);
        color: #1675d1;
    }
    </style>

    </head>
    <body>

    <h1>Результат: {{response.code}}</h1>
    
    <table>

        <tr>
        {{#each response.result.Колонки}}
            <th title="{{Тип}}">{{Имя}}</th>
        {{/each}}
        </tr>

        {{#each response.result.Строки}}
        <tr>
            <td>{{Ссылка}}</td>
            <td>{{Владелец}}</td>
            <td>{{Наименование}}</td>
            <td>{{ВладелецНаименование}}</td>
            <td>{{БИН}}</td>
            <td>{{БИК}}</td>
        </tr>
        {{/each}}
    </table>

    </body>
</html>
`;

pm.visualizer.set(template,{response: response});

pm.test("Status checking", function(){
    pm.response.to.have.status(200);
})

pm.test('Number of strings: ' + response.result.Строки.length, function(){
    pm.expect(response.result.Строки.length).to.not.equal(0);
})


Как видите, приходится хардкодить имена колонок при выводе данных.

А можно ли как то реализовать автоматически вывод этих данных?

Что то типа

let template = `
...
       {{#each response.result.Строки}}
        <tr>
            {{#each response.result.Колонки}}
                <td">{{{{Имя}}}}</td>
            {{/each}}
...


P.S.:
Тег POSTMAN не подставляется :(
  • Вопрос задан
  • 652 просмотра
Решения вопроса 1
Fzero0
@Fzero0
Вечный студент
Не до конца понял Ваш вопрос но вы можете подготовить как угодно данные и передать их в шаблон
let template = `
<html>
    <head>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"
    integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous">
    </head>
    <body>
    <h1>Результат: {{code}}</h1>
   <div class="table-responsive"> 
    <table class="table table-striped">
        <thead class="thead-dark">
        <tr>
            {{#each names}}
                <th scope="col">{{this}}</th>
            {{/each}}
        </tr>
        </thead>
        <tbody>
        {{#each response}}
            <tr>
                <td>{{userId}}</td>
                <td>{{id}}</td>
                <td>{{title}}</td>
                <td>{{body}}</td>
            </tr>
        {{/each}}
        </tbody>
    </table>
    </div>
    </body>
</html>`;
var data = pm.response.json();
var name = data.map(x=> Object.keys(x));

pm.visualizer.set(template,{
    names: [...new Set(name)][0],
    code: pm.response.code,
    response: data
});

6101c37d4037c135697211.png
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы