lf知识星球banner

HTTP&Socket模板自动化语法说明

2018-03-15 16:57:42
admin
28782
最后编辑:Seagull 于 2020-05-28 17:09:59
简介:介绍HTTP&Socket的模板使用以及语法说明,包括HTTP中的json如何应用。

首先,HTTP&Socket的自动化测试,每个步骤都必须要关联协议模板,去构造消息头以及消息体。

其次,在步骤动作栏中,点击输入框会自动联想当前项目下所有的协议模板,选择对应的模板即可。

再次,请求的参数都必须在模板里面先构造,不能直接在用例步骤的参数列里面去构造,步骤的参数列只能去替换模板里面的默认参数值。也就是说必须得在模板里面有的参数,步骤参数才能生效去替换默认值。

1:关键字语法结构

  • 参数栏可以修改模板中的默认值,如果参数为空,则默认使用模板中定义好的默认参数。

    参数栏填写示例:参数名#参数值|参数名#参数值|参数名#参数值|……|

示例:

  • 支持头域参数化:协议模板的请求头域可修改

    需要自己设置的常见头域就是登录鉴权了,比如有用Cookie的,那么你必须把token放到Cookie中去,Cookie是放在HTTP消息的头域来发送的。

a.模板中头域为空,可设置头域,但不能设值  

例:headmsg(Content-Length)| headmsg(Connection)……


b.模板中设值了请求头域,可修改头域的值headmsg(header)#值

例:headmsg(Content-Length)#500| headmsg(From)#user@@email.com……

头域的值也可传递参数    例:headmsg(Content-Type)#@type


c.模板头域中的参数设置,以;分隔参数,当本身参数值中有;号时,注意使用\;进行转义设置。


d.如果构造JSON格式模板,请参考协议模板内容页面中【参数示例】,点击打开后,有详细示例。

2:关于HTTPS的测试

HTTPS的请求测试分为两种,一种是单向认证,一种是双向认证(需要证书),以下分别介绍这两种方式如果去构造请求。

如果是HTTPS单向认证,那么跟普通的HTTP请求差不多,你只需要把【包|定位路径】列中的URL,把http换成https即可,如:https://www.baidu.com/ ,另外在选择请求方法的时候,请注意,必须选择 httpclient 类别的请求,此类请求才支持https。

如果是HTTPS双向认证,那么你需要比单向认证多一个步骤,就是在创建协议模板的时候,要按格式(https证书路径;证书密钥)填写https证书在客户端的路径以及证书的密钥。 


注意:如果客户端在运行HTTPS的时候报下面的异常:

javax.net.ssl.SSLKeyException: RSA premaster secret error

是因为缺少JRE中的jar包,把JRE安装目录中的JAR包(sunjce_provider.jar),复制到客户端项目的LIB目录或是对应的驱动目录即可解决。


见下图:


3:HTTP&Socket支持的方法

HttpURLPost 使用HttpURLConnection发送post请求
URLPost 使用URLConnection发送post请求
GetAndSaveFile 发送get请求保存下载文件到客户端
HttpURLGet 使用HttpURLConnection发送get请求
URLGet 使用URLConnection发送get请求
HTTPClientPost 使用HTTPClient发送post请求
HTTPClientGet 使用HTTPClient发送get请求
HttpClientPostJSON 使用HTTPClient发送JSON格式的post请求
HttpURLDelete 使用HttpURLDelete发送delete请求
httpClientPut 使用httpClientPut发送put请求
httpClientPutJson 使用httpClientPutJson发送put请求


    评论列表
    lili 2021-01-11 18:38:25 回复
    大佬,想请教一下客户端、服务端都用到了哪些技术栈呀
    change 2020-08-05 17:20:23 回复
    请问支持文档参数化吗?把测试数据放在比如CSV文件,自动读取里面的数据执行,实现数据驱动。
    Seagull 2020-08-20 17:55:57 回复
    支持通过自己写测试驱动实现此功能
    djc 2020-06-22 18:19:03 回复
    可以直接在协议模板中的头域信息中引用全局变量吗
    凌冰 2020-06-16 10:27:22 回复
    https双向认证 协议模板填写为: 【证书在本地的绝对路径;授权密钥标志符】使用报错,报错信息中显示:设置信任自签名证书出现异常,请检查!
    aquan 2020-06-15 14:36:37 回复
    请问,请求中带有数组,参数中数组要怎样写
    757c 2020-05-29 16:16:41 回复
    请问Socket接口测试,方法|操作 选择哪个?
    Seagull 2020-06-08 11:29:56 回复
    自己写驱动实现
    hellow 2020-03-10 17:29:27 回复
    整个用户手册就没有token传递的说明,无法继续探索。
    Seagull 2020-03-10 19:06:50 回复
    参数获取传递 已经说了参照3.2.1章节,另外也可以去文章内容里面搜索http查找相关文章
    mocne 2020-03-01 22:10:39 回复
    header里面有变量怎么办,header里面有个token字段,会刷新,根据登录接口的返回值每次去取
    Seagull 2020-03-03 08:28:09 回复
    替换头域变量即可,搜下官网资料,有文章
    zhaiy 2020-01-10 14:26:22 回复
    3.0版本可以支持xml格式请求么?
    3.1beta 版本增加了 HTTP请求类型增加一种HttpClientPostXml的SQL脚本
    这个HttpClientPostXml类型是支持xml格式的请求么?
    webservice协议有例子么?
    Seagull 2020-01-13 09:42:29 回复
    直接在协议模板的文本界面,填写xml所在的全路径即可,然后在用例步骤的http请求中,选择PostXml的方法.
    1/1
    发表评论
    评论通过审核后显示。
    付费知识圈