Duas maneiras de usar reuqests em RF

prefácio

Encontrei um problema recentemente. Quando construo e executo a automação da interface do usuário no servidor regularmente, sempre encontro isso na fase de configuração do caso de teste, ou seja, na fase de login, a página está carregando horas extras. Do log, Só vejo que esta captura de tela mostra que a página está carregando, mas especificamente qual tempo limite está carregado, ou seja, qual interface expirou, não consigo ver, vou aumentar o tempo para imprimir a interface de solicitação no roteiro

Existem duas maneiras de escrever scripts relacionados à interface aqui: uma é escrever uma biblioteca python sobre a interface de solicitação e usar RF para chamá-la. A flexibilidade de escrever código por conta própria é relativamente alta. Há também uma biblioteca de terceiros suportada diretamente pela estrutura de código aberto RF.

1. Use a biblioteca de solicitações do python

Para operações relacionadas à interface com python, será usada a biblioteca de solicitações. Também existem documentos oficiais para esta biblioteca para reference.cn.python-requests.org/zh_CN/lates…

Instalar

pip install requests

usar

Ele suporta 7 métodos de solicitação de solicitação: get/post/options/head/put/patch/delete

O retorno de cada método é um objeto de resposta

Existem duas maneiras de chamar

  • (1) Chamar métodos específicos em solicitações, respectivamente
res = requests.get(url)
res = requests.post(url)
res = requests.put(url)
res = requests.patch(url)
res = requests.options(url)
res = requests.head(url)
res = requests.delete(url)
复制代码

Para parâmetros detalhados, consulte o código-fonte

  • (2) Use o método de solicitação
res = requests.request('GET', url)
res = requests.request('OPTIONS', url)
res = requests.request('HEAD', url)
res = requests.request('POST', url)
res = requests.request('PUT', url)
res = requests.request('PATCH', url)
res = requests.request('DELETE', url)
复制代码

Para detalhes e métodos de uso, consulte a documentação oficial e o código-fonte. Hoje, vamos nos concentrar em como usá-lo em RF.

Exemplo

Por exemplo, eu crio um novo arquivo python na minha biblioteca TestLib e escrevo o seguinte código nele para obter a hora da interface de solicitação e, em seguida, retorno

def get_interface_request_duration(self, url_list,  cookie_dict):
       
        url_duration_dict = {}
        for url in url_list:
            respones = requests.request('GET', url=url, headers=cookie_dict,allow_redirects=False)
            duration = respones.elapsed.total_seconds()
            url_duration_dict[url] = duration
        return url_duration_dict
复制代码

Em RF eu chamo assim

imagem.png

Como este arquivo python pode ser importado como uma biblioteca, consulte meu artigo anterior# estrutura de robô - palavras-chave estendidas

1. Use a biblioteca de terceiros RequestsLibrary da RF

Instalar

pip install robotframework-requests

usar

Esta biblioteca também encapsula muitas palavras-chave, consulte o documento marketquare.github.io/robotframew…

exemplo

Eu inicio uma solicitação de obtenção, o código detalhado é o seguinte, primeiro apresento RequestsLibrary, em seguida, encapsulo uma palavra-chave de usuário para obter o tempo de carregamento da interface e, em seguida, chamo a palavra-chave de usuário no caso de teste

*** Settings ***
Library           RequestsLibrary

*** Test Cases ***

001_TC_test interface
    ${url_list}   set variable     url1    url2
    get_interface_request_duration    ${url_list}
   



***Keywords***
    get_interface_request_duration
    [Arguments]   @{url_list}   ${mocker_cookie_dict}=${EMPTY}
    FOR  ${url}  IN    ${url_list}
       ${RES}    GET  ${url}   headers=${mocker_cookie_dict}
       log   ${RES.elapsed.total_seconds()}
复制代码

Acho que você gosta

Origin juejin.im/post/7086024734252466184
Recomendado
Clasificación