La más detallada de toda la red, prueba de automatización de interfaz Python - Retención de sesión de sesión (detalles en combate real)


prefacio

En el proceso de prueba de interfaz, a menudo se encuentra que algunas interfaces deben iniciar sesión para solicitar, de lo contrario, se solicitará iniciar sesión, entonces, ¿cómo resolverlo?

La persistencia de la sesión se puede realizar a través de la sesión.

sesión (sesión)

sesión, la sesión. Entonces, ¿qué es una sesión? Echemos un vistazo al ciclo de vida de la sesión para obtener una comprensión general, de la siguiente manera:

Inicio: cliente (generalmente un navegador) –> enviar la primera solicitud –> un servidor de aplicaciones, establecer con éxito una conexión entre sí, es decir, crear una sesión, en la sesión: el cliente luego solicita otros recursos del servidor de aplicaciones
;
final: cierre el final del cliente (generalmente un navegador) o la sesión se agota, la sesión finaliza.

sesión en espera

La retención de sesión puede entenderse generalmente como evitar que se desconecten las solicitudes asociadas enviadas por el mismo usuario en la misma sesión.

Por ejemplo, si inicia sesión correctamente en un sitio web utilizando la sesión, cuando vuelva a utilizar el objeto de sesión para solicitar otras páginas web del sitio web, los parámetros como las cookies guardadas en la sesión se utilizarán de forma predeterminada para solicitar, sin la necesita iniciar sesión de nuevo.

El principio general del mantenimiento de sesión de sesión es el siguiente:
cuando la aplicación cliente solicita el servidor de aplicaciones por primera vez, el servidor creará una sesión y el objeto de la sesión almacenará los atributos y la información de configuración requerida por una sesión de usuario específica (como como información de usuario o estado de inicio de sesión, etc.) y guárdelo en el servidor.

Al crear una sesión, se le otorgará una ID de sesión, que se colocará en la cookie establecida y se devolverá al cliente con la solicitud, y se guardará en la cookie local.

Posteriormente, cuando el cliente solicite otros recursos en esta aplicación, el servidor recibirá el ID de la sesión en la cookie y buscará en la memoria el objeto de la sesión creado anteriormente de acuerdo con el ID. Si se puede encontrar y no ha caducado, significa que es del mismo usuario.solicitud.

Python realiza la persistencia de sesión de sesión

En la prueba de automatización de la interfaz, en algunos casos, el mecanismo de retención de la sesión se puede utilizar para mantener el estado de inicio de sesión, de modo que no sea necesario iniciar sesión primero cada vez que se solicite la interfaz.

A continuación, veamos los mensajes de notificación personales y la información personal en el sitio web de TesterHome como ejemplo para ilustrar cómo usar la sesión para mantener el estado de inicio de sesión en la prueba automatizada de la interfaz de python.

Nota:
Aquí trato de solicitar la interfaz de inicio de sesión para construir una sesión primero y luego uso la sesión para solicitar otras interfaces, pero todavía me indica que necesito iniciar sesión primero, lo que indica que este método del sitio web no funciona.

Porque después de iniciar sesión, salta a la página de inicio, por lo que aquí podemos usar la interfaz de la página de inicio de solicitud para construir una sesión y luego usar la sesión para solicitar otras interfaces.

1. Primero, Fiddler captura el paquete para obtener la cookie cuando solicita la interfaz de la página de inicio después de un inicio de sesión exitoso.

B1

2. Obtenga la cookie y construya un objeto de sesión utilizando la interfaz de la página de inicio de solicitud.

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

El objeto de sesión S que se obtendrá en este paso contiene información como cookies después de un inicio de sesión exitoso y luego usa el objeto de sesión para solicitar otras interfaces sin volver a iniciar sesión.

3. Utilice el objeto de sesión obtenido en el paso anterior para ver los mensajes de notificación personal y las interfaces de información personal.

# 使用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)

Solicitud de interfaz de información personal, el resultado de la ejecución es el siguiente:

B2

4. El código completo es el siguiente:

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)

La sesión y la cookie son mecanismos diferentes.

El mismo punto: ambos pueden registrar el estado del usuario y ambos son generados por el servidor.
La diferencia: la cookie se almacena en el cliente local, mientras que la sesión se almacena en el servidor.
Hay una conexión entre los dos: el mecanismo de retención de la sesión debe basarse en cookies, porque la identificación de la sesión se almacena en la cookie.

El siguiente es el diagrama de sistema de arquitectura de conocimiento de aprendizaje de ingeniero de prueba de software más completo en 2023 que compilé

1. De la entrada al dominio de la programación en Python

Por favor agregue una descripción de la imagen

2. Proyecto de automatización de interfaz de combate real.

Por favor agregue una descripción de la imagen

3. Combate real del proyecto de automatización web

Por favor agregue una descripción de la imagen

4. Combate real del proyecto de automatización de aplicaciones

Por favor agregue una descripción de la imagen

5. Hoja de vida de los fabricantes de primer nivel

Por favor agregue una descripción de la imagen

6. Probar y desarrollar el sistema DevOps

Por favor agregue una descripción de la imagen

7. Herramientas de prueba automatizadas de uso común

Por favor agregue una descripción de la imagen

Ocho, prueba de rendimiento JMeter

Por favor agregue una descripción de la imagen

9. Resumen (pequeña sorpresa al final)

Cada contribución se convertirá en la luz del futuro, persigue sueños con valentía, desafíate a ti mismo y persevera. Aunque el camino sea largo, mantén la fe, no te rindas y sigue adelante. Cree en tu propia fuerza y ​​eventualmente cosecharás resultados brillantes.

No importa cuál sea el punto de partida, mientras tengas un sueño en mente, trabajes duro, perseveres y te esfuerces, podrás superarte a ti mismo, brillar intensamente y lograr una vida brillante. Cree en ti mismo, avanza con valentía, la victoria pertenece a aquellos que se atreven a luchar con todas sus fuerzas.

Las dificultades y los contratiempos son inevitables en el camino para perseguir tus sueños, pero mientras tengas una creencia firme, sigas adelante con valentía y trabajes duro, seguramente alcanzarás la alegría del éxito. Cada lucha es una revolución, componiendo un movimiento magnífico para tu vida.

Supongo que te gusta

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