代码改变世界

风评接口测试

2019-01-28 16:15  改改~_~  阅读(441)  评论(0编辑  收藏  举报

风险评测页面的接口测试

一、手动测试流程

1、登录系统

2、答完8道题后点击提交

二、接口测试:

返回的信息是嵌套的,调用接口一直返回200,数据并没有发生更改

学习 Selenium的可关注下  解决动态渲染页面元素定位问题
pc端的风评页面就属于这类问题

import requests
import json
import unittest
import HTMLTestRunner

telphone =18200717087 #参数化手机号码(#67)

ur1='http://118.178.247.--:8081/systLogonUser/adminLogon.do'
headers = {'Content-Type':'application/x-www-form-urlencoded','Referer':'118.178.247.67'}
data = {
    'userName':telphone ,
    'pwd': '123456Aa',
    'verifyCode': 121
}
print(type(data))
r = requests.post(url=ur1,data=data,headers=headers)
repones = r.text
print('1',r.text)
print('2',r.status_code)
print('3',r.text[12:28])

'''
{"userOptions":[{"questionNo":"RISK0","userOption":"3"},{"questionNo":"RISK1","userOption":"3"},{"questionNo":"RISK2","userOption":"3"},{"questionNo":"RISK3","userOption":"3"},{"questionNo":"RISK4","userOption":"3"},{"questionNo":"RISK5","userOption":"3"},{"questionNo":"RISK6","userOption":"3"},{"questionNo":"RISK7","userOption":"3"}],"questionType":"RISK"}
{"userOptions":[{"questionNo":"RISK0","userOption":"3"},{"questionNo":"RISK1","userOption":"3"},{"questionNo":"RISK2","userOption":"3"},{"questionNo":"RISK3","userOption":"3"},{"questionNo":"RISK4","userOption":"3"},{"questionNo":"RISK5","userOption":"3"},{"questionNo":"RISK6","userOption":"3"},{"questionNo":"RISK7","userOption":"3"}],"questionType":"RISK"}
'''
url2='http://118.178.247.67:8081/question/list/present.do'
headers2 = {'Content-Type':'application/x-www-form-urlencoded','Referer':'118.178.247.67'}
# jsonString={"userOptions":[{"questionNo":"RISK0","userOption":"3"},{"questionNo":"RISK1","userOption":"3"},{"questionNo":"RISK2","userOption":"3"},{"questionNo":"RISK3","userOption":"3"},{"questionNo":"RISK4","userOption":"3"},{"questionNo":"RISK5","userOption":"3"},{"questionNo":"RISK6","userOption":"3"},{"questionNo":"RISK7","userOption":"3"}],"questionType":"RISK"}
# print('class:dict:',type(jsonString))

jsonString1 = json.dumps({"userOptions":[{"questionNo":"RISK0","userOption":"0"},
                                         {"questionNo":"RISK1","userOption":"0"},
                                         {"questionNo":"RISK2","userOption":"0"},
                                         {"questionNo":"RISK3","userOption":"0"},
                                         {"questionNo":"RISK4","userOption":"0"},
                                         {"questionNo":"RISK5","userOption":"0"},
                                         {"questionNo":"RISK6","userOption":"0"},
                                         {"questionNo":"RISK7","userOption":"0"}],"questionType":"RISK"}, indent=4)
print('输出jsonString1:',jsonString1)
# userOptionslist=[{"questionNo":"RISK0","userOption":"0"},{"questionNo":"RISK1","userOption":"0"},{"questionNo":"RISK2","userOption":"0"},{"questionNo":"RISK3","userOption":"0"},{"questionNo":"RISK4","userOption":"0"},{"questionNo":"RISK5","userOption":"0"},{"questionNo":"RISK6","userOption":"0"},{"questionNo":"RISK7","userOption":"0"}]
# userOptionslist='[{"questionNo":"RISK0","userOption":"0"},{"questionNo":"RISK1","userOption":"0"},{"questionNo":"RISK2","userOption":"0"},{"questionNo":"RISK3","userOption":"0"},{"questionNo":"RISK4","userOption":"0"},{"questionNo":"RISK5","userOption":"0"},{"questionNo":"RISK6","userOption":"0"},{"questionNo":"RISK7","userOption":"0"}]'
data2 = {
#     'jsonString':jsonString1,
#     # "jsonString":{'userOptions':'{0}'.format(userOptionslist),'questionType':'RISK'},
# 'jsonString':'{"userOptions":[{"questionNo":"RISK0","userOption":"0"},{"questionNo":"RISK1","userOption":"0"},{"questionNo":"RISK2","userOption":"0"},{"questionNo":"RISK3","userOption":"0"},{"questionNo":"RISK4","userOption":"0"},{"questionNo":"RISK5","userOption":"0"},{"questionNo":"RISK6","userOption":"0"},{"questionNo":"RISK7","userOption":"0"}],"questionType":"RISK"}',

    # 'userOptions':userOptionslist,
 'jsonString':{'userOptions':[{"questionNo":"RISK0","userOption":"0"},
                                         {"questionNo":"RISK1","userOption":"0"},
                                         {"questionNo":"RISK2","userOption":"0"},
                                         {"questionNo":"RISK3","userOption":"0"},
                                         {"questionNo":"RISK4","userOption":"0"},
                                         {"questionNo":"RISK5","userOption":"0"},
                                         {"questionNo":"RISK6","userOption":"0"},
                                         {"questionNo":"RISK7","userOption":"0"}],"questionType":"RISK"},
# 'jsonString':{'userOptions':[{'questionNo':'RISK0','userOption':0},
#                                 {'questionNo':'RISK1','userOption':0},
#                                 {'questionNo':'RISK2','userOption':0},
#                                 {'questionNo':'RISK3','userOption':0},
#                                 {'questionNo':'RISK4','userOption':0},
#                                 {'questionNo':'RISK5','userOption':0},
#                                 {'questionNo':'RISK6','userOption':0},
#                                 {'questionNo':'RISK7','userOption':0}],'questionType':'RISK'},
# 'jsonString':{'userOptions':[{'questionNo':'RISK0','userOption':0},
#                                 {'questionNo':'RISK1','userOption':0},
#                                 {'questionNo':'RISK2','userOption':0},
#                                 {'questionNo':'RISK3','userOption':0},
#                                 {'questionNo':'RISK4','userOption':0},
#                                 {'questionNo':'RISK5','userOption':0},
#                                 {'questionNo':'RISK6','userOption':0},
#                                 {'questionNo':'RISK7','userOption':0}],'questionType':'RISK'},
# 'jsonString':{"userOptions":[{"questionNo":"RISK0","userOption":0},{"questionNo":"RISK1","userOption":0},{"questionNo":"RISK2","userOption":0},{"questionNo":"RISK3","userOption":0},{"questionNo":"RISK4","userOption":0},{"questionNo":"RISK5","userOption":0},{"questionNo":"RISK6","userOption":0},{"questionNo":"RISK7","userOption":0}],"questionType":"RISK"},
'_': '1547535857821'
}
print(type(data2))
s=requests.session()
r=s.get(url=url2,data=data2,headers=headers2)
# r = requests.post(url=url2,data=data2,headers=headers2)
# r = requests.post(url2, data=jsonString)
repones = r.text
print('11',repones)
print('22:',r.status_code)




# url3='http://118.178.247.67:8081/personal/system/personal/safetyData.do'
# headers3 = {'Content-Type':'application/x-www-form-urlencoded','Referer':'118.178.247.67'}
# data3 = {
#
# }
# r = requests.post(url=url3,data=data3,headers=headers3)
# repones = r.text
# print('111',r.text)
# print('222',r.status_code)

 2019-05-06风险评测接口调不通的解决

原因:虽然登录了但是没有传递session,解决方法如下:

1_login.py

import this

import requests
import json
import unittest
import HTMLTestRunner


yuming='http://test-a.=='

'''登录'''

s=requests.session()  #session的设置
def login(phone):
    headers54 = {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
               'Accept': 'application/json, text/javascript, */*; q=0.01',
               'Referer': '{0}/systLogonUser/login.do'.format(yuming)}
    url54='{0}/systLogonUser/adminLogon.do'.format(yuming)
    data54 ={
            'userName':phone,
            'pwd':'123456Aa',
            'verifyCode':121
    }
    r=s.post(url=url54,data=data54,headers=headers54)
    login_response=r.text
    login_statuscode=r.status_code
    print(login_statuscode, login_response, s)
    return login_statuscode,login_response,s

login(18200717108)

6_riskdo.py

import requests
import json
import unittest
import HTMLTestRunner

'''风险评测'''

f=__import__('1_login')
f.login(18200717108) #调用登录模块
  
def riskdo(phone):
    headers = {
        'Accept': 'application/json, text/javascript, */*; q=0.01',
        'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
        'Referer': '{0}/login.do'.format(f.yuming)
    }
    url = '{0}/question/list/present.do'.format(f.yuming)
    data = {
        'jsonString': '{"userOptions":[{"questionNo":"RISK0","userOption":"0"},{"questionNo":"RISK1","userOption":"0"},{"questionNo":"RISK2","userOption":"0"},{"questionNo":"RISK3","userOption":"0"},{"questionNo":"RISK4","userOption":"0"},{"questionNo":"RISK5","userOption":"0"},{"questionNo":"RISK6","userOption":"0"},{"questionNo":"RISK7","userOption":"0"}],"questionType":"RISK"}',
        '_': '1556173375897'

    }
    r = f.s.post(url=url, data=data, headers=headers)
    print(r.status_code)
    print(r.text)

riskdo(18200717108)

至此,登录,风评、充值、连接oracle设置CA认证都可以python接口实现了,开户的可以通过python+selenium实现,但是浏览器似乎有时有问题(安全插件的安装)。。。