在这种情况下,我正在使用uri模块对API部署进行烟雾测试。流程是:
在#1或#4中,我想将结果的JWT分配给变量以供以后使用。像这样:
- name: log user in
uri:
url: "{{ api_url }}/user"
method: post
body_format: json
body:
email: "{{ email }}"
password: "{{ password }}"
assign:
jwt: {{ response.json.data.jwt }}
好像assign
是一件事。如果没有它,我可以register: session
并在其余的烟雾测试中使用{{ session.json.data.jwt}}
一百次,但是如果我可以更改播放范围变量(可能在播放列表的顶部定义),它将变得更加干净
答案 0 :(得分:0)
答案来自@ matt-p的注释-使用set_fact。谢谢。
我想展示一下这在REST API上的效果。请注意,我们以后如何使用简单的{{ user.email }}
从返回的JSON访问密钥,并将JWT令牌与headers:
jwt={{ user.jwt }}
- name: Login and get JWT session
uri:
url: "{{ url }}/users/login"
body_format: json
body:
email: "{{ email }}"
password: "{{ password }}"
method: POST
status_code: [200]
register: user_login
- name: Assign user variable to user_login results
set_fact:
user: "{{ user_login.json.data }}"
- name: Create a post
uri:
url: "{{ url }}/users/{{ user.id }}/posts"
body_format: json
method: POST
headers: jwt={{ user.jwt }}
body:
content: >
My name is {{ user.firstName }} and you
can email me at {{ user.email }}
status_code: [201]
register: post_creation