准备对游戏App接口进行自动化测试,首先从登陆接口开始,搞定登陆接口自动化设计思路,写个小白demo脚本
步骤1: Charles抓包查看登录接口信息
- 查看登录接口地址:https://xxxxxx/member/api/mi/login
- 查看有效的Header头信息
headers = {
"User-Agent": "okhttp/3.12.7-SNAPSHOT",
"App-Channel": "x00008005",
"Connection": "Keep-Alive",
"Content-Type":"application/json;charset=UTF-8",
"Host":"sdk-xxxxx.com",
"App-GameId": "900005",
"App-DeviceNum": "7777712c2a3d-20d9-3d65-ad21-7e3041f39b49"}
- 查看params传参信息
params = {"thirdParams": "", "uId": "88888121508241945",
"nickName": "9994208800", "session": "i68OUB7X0SDwy859l0",
"visitorToken": ""}
步骤2: 代码编辑器选择Pycharm, 开发语言Python
Pycharm安装教程,自行上网查询
步骤3: 安装Python自带的接口自动化requests库
pip install requests 注意如果提示pip升级,优先升级pip,再安装requests 库

步骤4: 设计登录demo脚本
为了使demo版代码稍微简洁,Header头信息和params传参信息,分别定义个方法,供后续调用
定义header方法
def get_SDK_header():
headers = {
"User-Agent": "okhttp/3.12.7-SNAPSHOT",
"App-Channel": "x00008005",
"Connection": "Keep-Alive",
"Content-Type":"application/json;charset=UTF-8",
"Host":"sdk-xxxxx.com",
"App-GameId": "900005",
"App-DeviceNum": "7777712c2a3d-20d9-3d65-ad21-7e3041f39b49"}
header = headers
return header
定义params方法
def get_params():
params = {"thirdParams": "", "uId": "88888121508241945",
"nickName": "9994208800", "session": "i68OUB7X0SDwy859l0",
"visitorToken": ""}
params = params
return params
编写登录接口脚本
def login_result_token():
'''登录成功'''
header = get_SDK_header()
params = get_params()
base_url = 'https://xxxxxx/member/api/mi/login'
r = requests.post(url=base_url, headers=header, json=params, verify=False)
result = r.json()
#3、输出结果
print(json.dumps(result, sort_keys=True, ensure_ascii=False, indent=4, separators=(', ', ': ')))
# result_token = result["data"]
# return result_token
if __name__ == '__main__':
print(login_result_token())
步骤5: 执行登录demo脚本
运行脚本,查看接口结果
{
"code": 200,
"data": {
"isFrozen": false,
"requestToken": "eyJhbGciOiJIUzI1NiJ9.eyJkZXZpY2VOdW0iOiI4MTJjMmEzZCNjUtYWQyMS03ZTMNDkiLCJhcHYWQzYWM5NjBmDAwMDUsImNoYWIwMDAwMTIjo5MDc2NcxYWQ5NjBmYjlkYmFjY29DE4ZGY4ZjcxZGU0TUzNyJ9.zv3X8XMTX9n4BHaDSOC7wHriRkRq6uStomz0JVd-ncw",
"type": 1,
"userPhone": ""
},
"message": null
}
步骤6: 运行脚本对比 Charles抓包返回

接口自动化--登录demo脚本参考
# -*- coding: utf-8 -*-
# @Time : 2021/1/9 13:39
# @File : test 001.py
# @Author : Yvon_₯㎕ζ๓
import requests,json
#定义header方法
def get_SDK_header():
headers = {
"User-Agent": "okhttp/3.12.7-SNAPSHOT",
"App-Channel": "x00008005",
"Connection": "Keep-Alive",
"Content-Type":"application/json;charset=UTF-8",
"Host":"sdk-xxxxx.com",
"App-GameId": "900005",
"App-DeviceNum": "7777712c2a3d-20d9-3d65-ad21-7e3041f39b49"}
header = headers
return header
#定义params方法
def get_params():
params = {"thirdParams": "", "uId": "88888121508241945",
"nickName": "9994208800", "session": "i68OUB7X0SDwy859l0",
"visitorToken": ""}
params = params
return params
def login_result_token():
'''登录成功'''
header = get_SDK_header()
params = get_params()
base_url = 'https://xxxxxx/member/api/mi/login'
r = requests.post(url=base_url, headers=header, json=params, verify=False)
result = r.json()
#3、输出结果
print(json.dumps(result, sort_keys=True, ensure_ascii=False, indent=4, separators=(', ', ': ')))
# result_token = result["data"]
# return result_token
if __name__ == '__main__':
print(login_result_token())
网友评论