在python接口自动化框架里面经常会用到正则表达式,主要是以下两种情况:
1,用python写一个正则表达式,实现对token数据的获取,只获取返回的cookie数据里面的accesstoken。如果对返回的cookie数据中的accesstoken进行获取,可以使用Python的正则表达式来匹配并提取数据。下面是具体代码实现:
java
import re
# 假设返回的cookie数据是'accesstoken=12345; sessionid=abcde; other=xyz;'
cookie_data = "accesstoken=12345; sessionid=abcde; other=xyz;"
access_token = re.search(r'accesstoken=([^;]+)', cookie_data)
if access_token:
access_token = access_token.group(1)
print(access_token)
正则表达式accesstoken=([^;]+)
用于匹配以"accesstoken="开始的字符串,然后使用([^;]+)
提取非分号的字符序列作为accesstoken的值。
在上述示例中,假设返回的cookie数据是'accesstoken=12345; sessionid=abcde; other=xyz;'
。通过正则表达式匹配,可以得到accesstoken的值为12345
。可以根据实际情况修改cookie_data的值,并根据需要调整正则表达式的模式来匹配其他格式的cookie数据。
2,当从接口返回值里面获取:状态码,响应结果,内容长度,还有报错信息的时候,也可以用python的正则表达式来实现,具体代码如下:
java
import re
response = "HTTP/1.1 200 OK\nContent-Type: application/json\nContent-Length: 1234\n\n{\"status\": \"success\", \"message\": \"Hello World!\"}"
# 假设response是接口返回的字符串,包含状态码、响应结果、内容长度和报错信息
# 提取状态码
status_code = re.search(r'HTTP\/\d\.\d (\d+)', response)
if status_code:
status_code = status_code.group(1)
# 提取响应结果
response_result = re.search(r'\n\n(.+)', response)
if response_result:
response_result = response_result.group(1)
# 提取内容长度
content_length = re.search(r'Content-Length: (\d+)', response)
if content_length:
content_length = content_length.group(1)
# 提取报错信息
error_message = re.search(r'Error: (.+)', response)
if error_message:
error_message = error_message.group(1)
print("Status Code:", status_code)
print("Response Result:", response_result)
print("Content Length:", content_length)
print("Error Message:", error_message)
在上述示例中,如果返回的response是一个字符串,类似于HTTP响应的格式,包含了状态码、响应结果、内容长度和报错信息。使用适当的正则表达式来匹配和提取这些信息。
可以根据实际的返回值格式和需求修改 response
变量,并相应地调整正则表达式模式来匹配和提取所需的信息。