gpt4 book ai didi

python - 在 Robot 框架中的测试套件中设置 session cookie

转载 作者:太空宇宙 更新时间:2023-11-03 15:51:52 25 4
gpt4 key购买 nike

我的应用程序是一个 RESTful API,它仅在 session cookie 存在时才有效。不幸的是,我总是需要在网络登录中进行身份验证以获取 cookie 并将 session cookie 传递给 API 以建立 session 。

我能够找出解决方案来验证 session cookie 并将其传递给 API,并使用机器人框架编写测试用例。到这里为止的所有内容都可以在单个测试套件文件中正常工作。

文章配置.py

ARTICLE_PREPROD = 'http://10.122.123.124:3001'
ARTICLE_CREATION_UI_API = '/api/articles/create'
ARTICLE_UPDATE_UI_API = '/api/articles/update'

session-cookie.robot

*** Settings ***
Documentation Suite description
Library Selenium2Library


*** Keywords ***

Get Authn Session
[Arguments] ${url} ${username} ${password}
[Documentation] Login using Authn
Open browser ${url} chrome
Input Text id=j_username ${username}
Input Password id=j_password ${password}
Click Element name=submit
${cookie_value} Get Cookie Value SESSION
[Teardown] Close Browser
${session_cookie} Create Dictionary SESSION=${cookie_value}
Set Suite Variable ${SESSION_COOKIE} ${session_cookie}
[Return] ${session_cookie}

article-create.robot

*** Settings ***
Documentation Suite description
Test Teardown

Library Collections
Library RequestsLibrary
Library json

Resource ../keywords/session-cookie.robot
Variables ../variables/articlesCreationData.py
Variables ../articles-config.py
Suite Setup Get Authn Session ${ARTICLE_PREPROD} username password


*** Test Cases ***
Article creation API
[Tags] ArticleCreation
Article creation from UI

Artcile2 creation API
[Tags] ArticleCreation
Article2 creation from UI

*** Keywords ***
Article creation from UI
[Documentation] Creating Article
Create Session articleCreate ${ARTICLE_PREPROD} cookies=${SESSION_COOKIE}
${headers} Create Dictionary Content-Type=application/json
${response} Post Request articleCreate ${ARTICLE_CREATION_UI_API} data=${ARTICLE_CREATE} headers=${headers}
log ${response.text}


Article2 creation from UI
[Arguments]
[Documentation] Creating Article
Create Session articleCreate ${ARTICLE_PREPROD} cookies=${SESSION_COOKIE}
${headers} Create Dictionary Content-Type=application/json
${response} Post Request articleCreate ${ARTICLE_CREATION_UI_API} data=${ARTICLE_CREATE} headers=${headers}
log ${response.text}

我的问题是如何确保 SESSION_COOKIE 可用于机器人文件中的所有测试套件。

例如,如果我有另一个名为 update-article.robot 的测试套件文件。如何将 SESSION_COOKIE 传递给 /api/articles/update API。请让我知道测试基于身份验证的 API 的更好方法。

我需要将 cookie 存储在 sqlite db 中吗?或将其保存在 yml 文件或任何更好的方法中,否则我做错了。

解决方案:

__init__.robot

*** Settings ***

Documentation Suite description

Resource ../keywords/session-cookie.robot

Variables ../articles-config.py

Suite Setup Get Authn Session ${ARTICLE_PREPROD} username password

最佳答案

您可以使用 Set Global Variable关键词。这将在全局范围内设置您的变量,并使其在之后执行的每个套件和测试用例中可用。

关于python - 在 Robot 框架中的测试套件中设置 session cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46114335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com