O mais detalhado em toda a rede, teste de automação de interface Python - Retenção de sessão de sessão (detalhes em combate real)


prefácio

No processo de teste de interface, muitas vezes é encontrado que algumas interfaces precisam estar logadas para solicitar, caso contrário, ele solicitará o login, então como resolver isso?

A persistência de sessão pode ser realizada por meio de sessão.

sessão (sessão)

sessão, a sessão. Então, o que é uma sessão? Vamos dar uma olhada no ciclo de vida da sessão para obter uma compreensão geral, como segue:

Iniciar: cliente (geralmente um navegador) –> enviar a primeira solicitação –> um servidor de aplicativos, estabelecer uma conexão entre si com sucesso, ou seja, criar uma sessão; na sessão: o cliente solicita outros recursos do servidor de aplicativos
;
end: fecha o cliente final (geralmente um navegador) ou a sessão expira, a sessão termina.

espera de sessão

A retenção de sessão pode ser geralmente entendida como impedir que solicitações associadas enviadas pelo mesmo usuário na mesma sessão sejam desconectadas.

Por exemplo, se você fizer login com sucesso em um site usando a sessão, quando usar o objeto de sessão novamente para solicitar outras páginas da web do site, os parâmetros como cookies salvos na sessão serão usados ​​por padrão para solicitar, sem o precisa fazer login novamente.

O princípio geral da manutenção da sessão da sessão é o seguinte:
quando o aplicativo cliente solicita o servidor de aplicativos pela primeira vez, o servidor criará uma sessão e o objeto da sessão armazenará os atributos e as informações de configuração exigidas por uma sessão de usuário específica (como como informações do usuário ou status de login, etc.) e salve-o no servidor.

Ao criar uma sessão, será fornecido um ID de sessão, que será colocado no set-cookie e devolvido ao cliente com a solicitação, e salvo no cookie local.

Posteriormente, quando o cliente solicitar outros recursos nesta aplicação, o servidor receberá o ID da sessão no cookie e buscará na memória o objeto da sessão criado anteriormente de acordo com o ID. Se ele puder ser encontrado e não tiver expirado, significa que é do mesmo usuário. request.

Python executa persistência de sessão de sessão

No teste de automação da interface, em alguns casos, o mecanismo de retenção de sessão da sessão pode ser usado para manter o status do login, de modo que não haja a necessidade de fazer login primeiro toda vez que a interface for solicitada.

Em seguida, vamos ver mensagens de notificação pessoal e informações pessoais no site TesterHome como um exemplo para ilustrar como usar a sessão para manter o status de login no teste automatizado da interface python.

Nota:
Aqui eu tento solicitar a interface de login para construir uma sessão primeiro e depois usar a sessão para solicitar outras interfaces, mas ainda solicita que eu precise fazer login primeiro, indicando que esse método do site não funciona.

Porque após o login, ele pula para a página inicial, então aqui podemos usar a interface da página inicial de solicitação para construir uma sessão e, em seguida, usar a sessão para solicitar outras interfaces.

1. Primeiro, o Fiddler captura o pacote para obter o cookie ao solicitar a interface da página inicial após o login bem-sucedido

B1

2. Obtenha o cookie e construa um objeto de sessão usando a interface da página inicial de solicitação.

import requests

headers = {
    
    
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36",
    "cookie": '如上面截图所示获取的cookie,即登录成功后跳转时,请求首页接口https://testerhome.com/时的cookie'
}

# 构造一个全局session对象
S = requests.session()

# 使用session对象即S模拟登录成功后请求首页接口,更新S
h_url = "https://testerhome.com/"
h_res = S.get(url=h_url, headers=headers).text

O objeto de sessão S que será obtido nesta etapa contém informações como cookies após login bem-sucedido e, em seguida, use o objeto de sessão para solicitar outras interfaces sem precisar fazer login novamente.

3. Use o objeto de sessão obtido na etapa anterior para exibir mensagens de notificação pessoal e interfaces de informações pessoais.

# 使用session对象S请求个人通知消息接口
n_url = "https://testerhome.com/notifications/personal"
n_res = S.get(url=n_url).text
print(n_res)

# 使用session对象S请求个人信息接口
s_url = "https://testerhome.com/setting"
s_res = S.get(url=s_url).text
print(s_res)

Solicitar interface de informações pessoais, o resultado da execução é o seguinte:

B2

4. O código completo é o seguinte:

import requests

headers = {
    
    
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36",
    "cookie": '如上面截图所示获取的cookie,即登录成功后跳转时,请求首页接口https://testerhome.com/时的cookie'
}

# 构造一个全局session对象
S = requests.session()

# 使用session对象即S模拟登录成功后请求首页接口,更新S
h_url = "https://testerhome.com/"
h_res = S.get(url=h_url, headers=headers).text

# 使用session对象S请求个人通知消息接口
n_url = "https://testerhome.com/notifications/personal"
n_res = S.get(url=n_url).text
print(n_res)

# 使用session对象S请求个人信息接口
s_url = "https://testerhome.com/setting"
s_res = S.get(url=s_url).text
print(s_res)

Sessão e cookie são mecanismos diferentes.

O mesmo ponto: ambos podem registrar o status do usuário e ambos são gerados pelo servidor.
A diferença: o cookie é armazenado no cliente local, enquanto a sessão é armazenada no servidor.
Existe uma conexão entre os dois: o mecanismo de retenção da sessão precisa contar com cookies, porque o ID da sessão é armazenado no cookie.

A seguir está o diagrama de sistema de arquitetura de conhecimento de aprendizado de engenheiro de teste de software mais completo em 2023 que eu compilei

1. Da entrada ao domínio da programação Python

Adicione uma descrição da imagem

2. Combate real do projeto de automação da interface

Adicione uma descrição da imagem

3. Combate Real do Projeto de Automação Web

Adicione uma descrição da imagem

4. Combate real do projeto de automação de aplicativos

Adicione uma descrição da imagem

5. Currículo de fabricantes de primeira linha

Adicione uma descrição da imagem

6. Testar e desenvolver o sistema DevOps

Adicione uma descrição da imagem

7. Ferramentas de teste automatizadas comumente usadas

Adicione uma descrição da imagem

Oito, teste de desempenho do JMeter

Adicione uma descrição da imagem

9. Resumo (pequena surpresa no final)

Cada contribuição se tornará a luz do futuro, corra atrás de sonhos, desafie a si mesmo e persevere. Mesmo que a estrada seja longa, mantenha a fé, não desista e continue. Acredite em sua própria força e, eventualmente, colherá resultados brilhantes.

Não importa qual seja o ponto de partida, contanto que você tenha um sonho em mente, trabalhe duro, persevere e persiga com afinco, você será capaz de se superar, brilhar intensamente e alcançar uma vida brilhante. Acredite em você, vá em frente com coragem, a vitória é de quem ousa lutar com todas as suas forças.

Dificuldades e contratempos são inevitáveis ​​no caminho para perseguir seus sonhos, mas, desde que você tenha uma crença firme, siga em frente com bravura e trabalhe duro, certamente alcançará a alegria do sucesso. Cada luta é uma revolução, compondo um movimento magnífico para sua vida.

Acho que você gosta

Origin blog.csdn.net/m0_70102063/article/details/132259660
Recomendado
Clasificación