Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Подскажите как cформировать данные не в unicode, post запрос json?


(yuritikhonov1976) #1

 

Добрый вечер, коллеги!

Необходимо тестировать api, посредством http запросов, формат json.

Нужно отправить вот втаком формате:

core.pl.main.rd/?p=main.common.auth&v=1&authkey=

{"id":2,

"jsonrpc":"2.0",

"method":"auth",

"params":

{

      "login" : "yur",

      "password" : "rtyd",

      "deviceid" : "467",

}

}

Подключил библиотеку robotframework-request

И сделал в ride тест

*** Settings ***

Library Collections

Library String

Library RequestsLibrary

Suite Teardown Delete All Sessions

 

*** Test Cases ***

Post Requests

    Create Session checkjs http://core.pl.main.rd

 

    ${paramdata} Create Dictionary login yur password rtyd deviceid 467

    ${data} Create Dictionary id  2 jsonrpc 2.0 method auth params ${paramdata}

    ${resp} Post checkjs /?p=main.common.auth&v=1&authkey= data=${data} 

    ${jsondata}= To Json ${resp.content}

 

Тест валится на запросе, сервер возвращает 400 ошибку, на сервере видно что данные пришли в unicode, поэтому сервак запрос не разбирает.

Подскажите, как стандартными средствами обойти проблему.


(Mykhailo Poliarush) #2

а в каком месте падает тест?

а вы умеете программировать? если да, то попробуйте напрямую создать запрос через https://github.com/kennethreitz/requests библиотеку и посмотреть, что это проблема в тесте а не где-то в коде

 


(yuritikhonov1976) #3

рост запрос выдавал мне ответ 400, а на сервере запрос выглядел примерно так params=%7Bu%27device_type_id%27%3A+u%271%27%2C+u%27login%........

попробовал использовать другую библиотеку.

HttpLibrary.HTTP, все получилось, 

а если использовать команду "Stringify Json" этой библиотеки для подготовки json строки, то и в первом варианте сработает.