标题想不出来写什么好,请见谅。
前面两篇都是准备工作,这篇要用到前面两篇,当然再后面还会用到这一篇,这个.py文件名叫testvote,下一篇会调用这个模块。直接上代码。
import xlrd
from TestRequest import *
from testdata.getpath import *
testdata=xlrd.open_workbook(GetTestDataPath())
testurl='https://way.jd.com'
def tianqi():
try:
table=testdata.sheets()[1]
for i in range(2,6):
name= table.cell(i, 0).value
status=table.cell(i,1).value
qiwang=table.cell(i,2).value
hdata={
'appkey':'9a2069a2b2ac98092ad4',
'city':name
}
header={
'content-type': "application/x-www-form-urlencoded",
'Connection': 'close'
}
testcaseid='1-1'
testname='天气预报 '+testcaseid
testhope=str(int(status))
fanhuitesthope=qiwang
r=TestPostRequest(testurl+'/he/freeweather',hdata,header,testcaseid,testname,testhope,fanhuitesthope)
# print (r)
except Exception as e:
print(e)
#tianqi()
前三行导包,第二行和第三行就是导的前面两篇的内容。
第四行要用到读路径的那个,找到excel文件。第五行是服务器地址,这是京东万象的。
下面是一个查询天气的接口,try这里是防止类似于服务器宕机的这种异常情况,如果传参服务器正常处理,给出正常结果就走try里面;如果服务器宕机不能处理请求,或者请求错了,没找到服务器,就走except,抛出异常。
try里面分别是读取excel的第二个sheet,就是上一篇写着城市的那个标签页,循环从第i行的第1、2、3列取数据,分别取出城市,返回状态,期望。hdata是参数,这个接口只需要两个参数,appkey登录京东万象会自动得到,我这的appkey是不完整的,城市就是从excel里取得。
header没什么用,但是在TestRequest里写了另一个header,这里就得纠正过来,这个可能算是默认的header吧,用jmeter测接口时候从来没管过这,postman里倒是有这个。
testcaseid是用例编号,随意写。testname,用例名称。testhope这里用到了格式转换,如果不转换取出来的是浮点型,1000.00这样,这样断言就是败了。后面r就是调用前面写的封装那里的东西了,传需要的参数。再下面print(r)是我自己加的,没完全理解怎么回事,没实际用途。在TestRequest里面,已经打印了返回结果,所以这里不需要打印,执行时候就能在控制台看到结果。
想测试把最下面的tianqi()取消注释就可以了。