得到开发提供的接口文档后,就可以开始写脚本了,如:
1. get请求的入参是json格式的
摘要: | 利用httpClient调用接口,成功返回信息 |
接口地址: | http://192.168.100.87:10051/ngcctcontrol/ws/interfaces/userSatisfy |
请求方式: | GET |
步骤: | 1、利用httpClient模拟接口调用正常情况。 |
输入报文: | { "endTime":"2017-01-25 00:00:00", "userSatisfy":"1", "userSatisfy2":"1", "serviceTypeId":"otck" "object":[], "beans":[]
{\"params\":{\"beginTime\":\"2017-01-01 00:00:00\",\"endTime\":\"2017-01-25 00:00:00\",\"userSatisfy\":\"1\",\"userSatisfy2\":\"1\",\"serviceTypeId\":\"otck\"},\"object\":[],\"beans\":[]} beginTime,endTime,不大于30天serviceTypeId//必传 |
要用URLencode转码,参见另一篇文章《jmeter json入参转化为get的入参》
2. get请求是普通的键值对
摘要: | 利用httpClient调用接口,成功返回异常信息
输入参数: var param = {"billId":"13312212121", "log":"haha" } |
接口地址: | http://192.168.100.36:8843/ngbusi_gx/front/sh/custInfo!execute?uid=queryVpmnGrpInfoDetail |
请求方式: | GET |
这个很简单,只要用&链接符把他们一个个都放到URL里面就可以了,如下(截图是POST请求点错了,应该是get)
3,json格式的post请求
摘要: | 利用httpClient调用接口,成功返回信息 |
接口地址: | http://192.168.100.87:10051/ngcctcontrol/ws/interfaces/contactsingleope |
请求方式: | POST |
步骤: | 1、利用httpClient模拟接口调用正常情况。 |
输入报文: | { "channelId":"08000701", "channelName":"4G管家", "mediaTypeId":"01", "mediaTypeName":"webChat", "callType":"0", "provinceId":"00030001", "ctiId":" 1", "ccid":" 1", "vdnId":" 1", "callId":"14640099272192501", "callIdTime":"1464009927", "callIdDsn":"21925", "callIdHandle":"0", "callIdServer":" 1", "callSkillId":" 1", "callerNo":"psx34_163.com", "calledNo":"5323738", "subsNumber":"13837829820", "orgCallerNo":"", "orgCalledNo":"045110086", "staffId":"HA10031", "remark":"", "contactStartTime":"2017-01-23 11:40:48", "contactEndTime":"2017-01-23 16:35:55", "playRecordFlag":"0", "qcFlag":"0", "qcStaffId":" HA 10001", "staffHangup":" 1", "surveyTypeId":" 01", "userSatisfy":" 1", "userSatisfy2":" 1", "userSatisfy3":" 1", "hasRecordFile":" 1", "custId":"", "custName":"", "custLevelId":"", "custLevelName":"", "custBrandId":"", "custBrandName":"", "custCityId":" 000300010011 ", "custCityName":"昌平", "custCityId2":" 000300010012 ", "custCityName2":"大兴", "firstResponseTime":"2017-01-23 11:40:48", "fstCharAttrVal":"", "secdCharAttrVal":"", "thrdCharAttrVal":"", "fothCharAttrVal":"", "fithCharAttrVal":"", "sxthCharAttrVal":"", "svthCharAttrVal":"", "egthCharAttrVal":"", "nithCharAttrVal":"", "tenCharAttrVal":"", "elevCharAttrVal":"", "twlfCharAttrVal":"", "thtnCharAttrVal":"", "fotnCharAttrVal":"", "fitnCharAttrVal":"", "sitnCharAttrVal":"", "svtnCharAttrVal":"", "eitnCharAttrVal":"", "nitnCharAttrVal":"", "twthCharAttrVal":"", "toUserId":"sinaweibo2001627641", "toUserName":"中国移动", "fromOrgId":"", "releaseReason":"", "staffCityId":"99100000", "staffProvinceId":"00030050", "startRingTime":"", "serviceTypeId":"otck", "ctiCallId":"", "callTrace":"", "digitCode":"", "srFlag":"", "languageId":"", "languageName":"", "callSkillName":"4G管家,集中坐席", "workNo":"" "object":[], "beans":[] |
这个很简单,只要把入参放到BodyData里面就可以了,记得要先用json在线校验工具进行校验,另外要加http头管理器,在里面加上content-type:Application/json
响应结果:
由于json字符串在Body Data中传递,故请求的数据都在Post Data中,而post只有路径
4.post请求的键值对
除了放到BodyData里,有时候放到URL里,用&连接符,类似情况2的get请求。如下图的登录场景,传递用户名和密码
可以看到参数是在POST中而非POST DATA
5.parameters选项卡中填写而非bodydata,但与bodaydata效果一样
注意:
a. name是空,没有填写,仅写了value,亦可传送
b. 在Parameters中填写表格形式的入参,信息头管理器可以没有,但不可写成“Content-Type: application/json”否则报错