Python接口测试—正则表达式获取参数

登录验证与Token获取
本文介绍了一种使用Python实现的网站登录验证方法,并演示了如何从登录响应中提取Token的过程。涉及的技术包括requests库的使用、JSON数据处理及正则表达式的应用。

http://www.jianshu.com/p/7f3cb41767ff


import requests
import json
import re


def login(username,password):
    headers = {'Content-Type': 'application/json'}
    login_url = 'https:xxxxxxxxxxx' #登陆的url地址
    form_date = {'idContent' : username,'password':password} #将账号密码放到一个form中
    login_response = requests.post(login_url,headers = headers,data=json.dumps(form_date)) #发一个请求,用post带着账号密码作为一个form请求
    r = login_response.text #读取请求返回的结果  
    return r
def Token(r):
    key = r
    p1 = r'"loginToken":"(.*)"'  #想匹配到loginToken后面的值
    pattern1 = re.compile(p1)
    print pattern1.findall(key)[0]
    token = pattern1.findall(key)[0]
    return token
    print token


### 如何在 JMeter 中设置正则表达式 JMeter 是一种强大的性能测试工具,广泛应用于接口测试和功能测试。其内置的正则表达式提取器可以帮助用户从响应数据中提取特定的信息并存储为变量供后续使用[^1]。 #### 正则表达式提取器配置步骤说明 在 JMeter 的测试计划中,可以通过添加 **正则表达式提取器** 来实现对 HTTP 请求响应内容的处理。以下是具体的操作方式: 1. 打开 JMeter 并创建一个新的线程组或者编辑现有的线程组。 2. 右键单击目标采样器(Sampler),选择 `Add` -> `Post Processors` -> `Regular Expression Extractor` 添加正则表达式提取器。 3. 配置正则表达式提取器的各项参数: - **Reference Name**: 定义一个名称作为变量名,用于保存提取的内容。例如命名为 `token`。 - **Regular Expression**: 输入要使用的正则表达式来匹配目标字符串。例如,假设需要从 HTML 页面中的 `<input type="hidden" name="csrf_token" value="abc123">` 提取 CSRF Token,则可以编写正则表达式为:`<input type="hidden" name="csrf_token" value="(.*?)">`[^3]。 这里的 `(.*?)` 表示捕获任意字符直到遇到下一个双引号为止。 - **Template**: 指定模板以定义如何获取匹配项,默认情况下应填写 `$1$`,这表示第一个分组内的值会被提取出来[^3]。 - **Match No. (0 for random)**: 如果有多个匹配结果可以选择具体的索引来决定采用哪一个;通常设为 `1` 或者保持默认值 `0`(随机选取其中一个)即可满足大部分需求。 - **Default Value**: 当没有任何匹配发生时所返回的一个缺省值,在调试阶段非常有用以防脚本崩溃。 #### 示例代码展示 下面给出一段简单的 Python 实现类似的正则逻辑以便理解: ```python import re html_content = '<input type="hidden" name="csrf_token" value="abc123">' pattern = r'<input type="hidden" name="csrf_token" value="(.*?)"' match = re.search(pattern, html_content) if match: csrf_token = match.group(1) print(f'Extracted token is {csrf_token}') else: print('No matching pattern found.') ``` 此段Python代码展示了如何利用标准库模块re来进行基本的正则操作,与我们在Jmeter里所做的工作原理相同只是表现形式有所区别而已。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值