开发者社区> 问答> 正文

HttpUtilities API使用方法

类:HttpUtilities

方法:setKeepAlive

定义:def setKeepAlive(flag)

设置底层 HTTP 客户端引擎在发送请求时使用长连接还是短连接,默认使用长连接,flag 为 True 或者 False。

示例:

# 强制HTTP客户端引擎使用短连接,每次循环之后关闭连接
PTS.HttpUtilities.setKeepAlive(False)
方法:setUrlEncoding

定义:def setUrlEncoding(code)

设置底层 HTTP 客户端引擎在发送请求时使用的 URL 编码方式,默认使用 GBK 编码。如果您的 URL 已经经过 URL 编码,则修改设置无效。

示例:

# 使用UTF-8来进行URL编码
PTS.HttpUtilities.setUrlEncoding('UTF-8')
方法:setTimeout

定义:def setTimeout(time)

设置底层 HTTP 客户端引擎控制 HTTP 请求的 Connection 和 reading Response 超时时间,时间单位为毫秒。

示例:

# 设置超时时间120000毫秒
PTS.HttpUtilities. setTimeout (120000)
方法:setFollowRedirects

定义:def setFollowRedirects(flag)

设置底层 HTTP 客户端引擎针对类似 302 这样的跳转响应的处理方式。如果设置成 True,则引擎会自动跟随跳转内容进行继续请求,否则不再跟随。按照模板编写和手工编写引擎默认为 True,录制下来的脚本引擎默认为 False。

示例:

# 跟随跳转请求
PTS.HttpUtilities.setFollowRedirects(True)
方法:valueFromCookie

定义:def valueFromCookie(cookieName, threadContext=None)

获取 Cookie 管理器中 cookieName 对应的值。当 HTTP 响应返回使用 SET-COOKIE 来设置 Cookie 时,这些 Cookie 会自动存储到 Cookie 管理器。

示例:

# 获取Cookie管理器中名字为JSESSIONID的Cookie值
PTS.HttpUtilities.valueFromCookie('JESSIONID')
# 获取Cookie管理器中名字为JSESSIONID的Cookie值(仅在当前线程中查找)
PTS.HttpUtilities.valueFromCookie('JESSIONID', self.threadContext)
方法:valueFromHeader

定义:def valueFromHeader(header)

获取 HTTP 响应中 Header 名为 header 的值。

示例:

# 获取HTTP响应中Header名为Location的值
PTS.HttpUtilities.valueFromHeader('Location')
方法:valueFromBodyInput

定义:def valueFromBodyInput(tokenName)

获取 HTTP 响应中标签名 tokenName 的 input 的值。

示例:

# 获取HTTP响应表单中input名称为username的控件值
PTS.HttpUtilities.valueFromBodyInput('username')
方法:valueFromHiddenInput

定义:def valueFromHiddenInput(tokenName)

获取 HTTP 响应中标签名为 tokenName 的隐藏控件的值。

方法:valueFromTextBetween

定义:def valueFromTextBetween(text, left, right)

获取 text 中被 left 和 right 字符串包围的中间字符串,如果有多个匹配则返回第一个。

示例:

<html> ……<body>……<img token=’tb_token’>KDJAK</img></body></html>
比如上面这段HTML代码,调用下面这个方法会返回”KDJAK”
# 返回KDJAK
PTS.HttpUtilities.valueFromTextBetween(text, "'tb_token'>;", "<;")
方法:valuesFromTextBetween

定义:def valuesFromTextBetween(text, left, right)

功能和 valueFromTextBetween 类似,返回被 left 和 right 包围的字符串列表。

示例:

<xml><cars><car name=”VW”/> <car name=”BMW”/> <car name=”BENZ”/> </cars></xml>
比如上面这段xml代码,调用下面这个方法会返回:[“VW”, “BMW”, “BENZ”]
PTS.HttpUtilities.valuesFromTextBetween(text, "name=\"", "\"")
方法:valueFromBodyBetween

定义:def valueFromBodyBetween(left,right)

获取 HTTP 响应中被 left 和 right 字符串包围的中间字符串,如果有多个匹配则返回第一个。

示例:

<html> ……<body>……<img token=’tb_token’>KDJAK</img></body></html>
比如上面这段HTML代码,调用下面这个方法会返回”KDJAK”
# 返回KDJAK
PTS.HttpUtilities.valueFromBodyBetween("'tb_token'>;", "<;")
方法:valuesFromBodyBetween

定义:def valuesFromBodyBetween(left, right)

功能和 valueFromBodyBetween 类似,返回被 left 和 right 包围的字符串列表。

示例:

<xml><cars><car name=”VW”/> <car name=”BMW”/> <car name=”BENZ”/> </cars></xml>
比如上面这段xml代码,调用下面这个方法会返回:[“VW”, “BMW”, “BENZ”]
PTS.HttpUtilities.valuesFromBodyBetween("name=\"", "\"")
方法:setProxyServer

定义:def setProxyServer(ip, port)

设置底层 HTTP 引擎使用 IP 为 ip,端口为 port 的代理进行请求。

示例:

PTS.HttpUtilities.setProxyServer('localhost', 8888)
方法:setUseCookieModule

定义:def setUseCookieModule(flag)

设置脚本中是否使用 CookieModule 来进行 cookie 管理,默认使用。如果想在 HTTP 的 header 里自己设置 Cookie,则需要通过调用这个方法来将 CookieModule 禁用。

示例:

PTS.HttpUtilities.setUseCookieModule(False)
方法:checkResponse

定义:def checkResponse(code, expectedText=None)

对 HTTP 响应进行脚本,返回码是否为 code,响应 body 里面是否包含 expectedText。只有当返回码符合且 expectedText 存在时返回 True。当 expectedText 为 None 时(可以不传入该参数),不进行文本校验。

示例:

# 当响应返回码为200,且返回body包含test则返回True
PTS.HttpUtilities.checkResponse(200, "test")
# 当响应返回码为200,且返回body包含有中文"测试"且返回True
PTS.HttpUtilities.checkResponse(200, u"测试")
方法:checkResponseByRegex

定义:def checkResponseByRegex(code, expectedPattern=None)

对 HTTP 响应进行脚本,返回码是否为 code,响应 body 里面是否包含 expectedPattern 这样的正则字符串。只有当返回码符合且 expectedPattern 能够匹配时,返回 True。当 expectedPattern 为 None 时(可以不传入该参数),不进行文本校验。

示例:

# 当响应返回码为200,且返回body包含IP地址则返回True
PTS.HttpUtilities.checkResponseByRegex(200, "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$")

展开
收起
猫饭先生 2017-10-31 13:43:23 2053 0
0 条回答
写回答
取消 提交回答
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Boot2.0实战Redis分布式缓存 立即下载
CUDA MATH API 立即下载
API PLAYBOOK 立即下载