全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
性能测试 PTS

HttpUtilities API

更新时间:2017-12-01 17:12:23

类:HttpUtilities

获取响应内容

获取 response 的 body 体内容,以下接口会用到,如下:

  1. str(result.getText())
  2. result为请求的结果,如下:
  1. result = HTTPRequest().GET(u'http://www.test.com',[],headers)
  2. PTS.Logger.info(str(result.getText()))

方法:setKeepAlive

定义:def setKeepAlive(flag)

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

示例:

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

方法:setUrlEncoding

定义:def setUrlEncoding(code)

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

示例:

  1. # 使用UTF-8来进行URL编码
  2. PTS.HttpUtilities.setUrlEncoding('UTF-8')

方法:setTimeout

定义:def setTimeout(time)

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

示例:

  1. # 设置超时时间120000毫秒
  2. PTS.HttpUtilities. setTimeout (120000)

方法:setFollowRedirects

定义:def setFollowRedirects(flag)

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

示例:

  1. # 跟随跳转请求
  2. PTS.HttpUtilities.setFollowRedirects(True)

方法:valueFromCookie

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

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

示例:

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

方法:valueFromHeader

定义:def valueFromHeader(header)

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

示例:

  1. # 获取HTTP响应中Header名为Location的值
  2. PTS.HttpUtilities.valueFromHeader('Location')

方法:valueFromBodyInput

定义:def valueFromBodyInput(tokenName)

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

示例:

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

方法:valueFromHiddenInput

定义:def valueFromHiddenInput(tokenName)

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

方法:valueFromTextBetween

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

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

示例:

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

方法:valuesFromTextBetween

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

功能和 valueFromTextBetween 类似,返回被 left 和 right 包围的字符串列表。获取响应的body体见第一个示例。

示例:

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

方法:valueFromBodyBetween

定义:def valueFromBodyBetween(left,right)

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

示例:

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

方法:valuesFromBodyBetween

定义:def valuesFromBodyBetween(left, right)

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

示例:

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

方法:setProxyServer

定义:def setProxyServer(ip, port)

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

示例:

  1. PTS.HttpUtilities.setProxyServer('localhost', 8888)

方法:setUseCookieModule

定义:def setUseCookieModule(flag)

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

示例:

  1. PTS.HttpUtilities.setUseCookieModule(False)

方法:checkResponse

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

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

示例:

  1. # 当响应返回码为200,且返回body包含test则返回True
  2. PTS.HttpUtilities.checkResponse(200, "test")
  3. # 当响应返回码为200,且返回body包含有中文"测试"且返回True
  4. PTS.HttpUtilities.checkResponse(200, u"测试")

方法:checkResponseByRegex

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

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

示例:

  1. # 当响应返回码为200,且返回body包含IP地址则返回True
  2. 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])$")
本文导读目录