Python做加密接口的测试方法【多测师】

加密接口怎么测试?

(1)写个函数或者方法,把要加密的参数使用这个函数过滤一遍,等于就是说把数据丢进去,加密了之后,再通过这个加密好的
数据传输过去就可以了!!
(2)至于用什么加密算法,这个要根据产品和自己的业务场景和需求不管是AES或者公钥私钥也好看自己的选择
(3)也可能是编码的问题,就直接用base64码把需要传输加密的东西通过base64返回base64码,然后再放进去,然后再进行传输
(4)这是编码不是加密,真的要加密的话,首先把要用的参数加好密之后再被传输出去,传输的过程中把传输的数据进行一次加密和封装之后再发送过去
(5)用jmeter做接口测试用post-processor加beanshell进行加密解密,再从日志中查找参数,然后具体的加密算法要看需求
(6)每个测试工具提供的加密算法是不一样的,工具不一样加密算法也是不一样的
(7)如果不用工具的话应该怎么做?==》看如下的代码

#coding=utf-8
"""
===========================
Author:多测师_王sir
Time:2020/6/2 10:12
Wechat:15367499889
Company:上海多测师信息有限公司
===========================
"""

import requests
import hashlib
import json

# 组建接口
# 第一步:拿到接口入参==》2个参数
# data  必须参数,对应的值是正常传递的参数组装成json字符串,组装的json字符串里面必须包含appId,
# sign  必须参数,对应得值是data值得md5值。
BASE_URL = 'http://118.24.XXX.XXX:8080/api/login?'
appId=4001
code='033qdUtz0LcJsc19tZxz09cTtz0qdUt6'
app_secret_key='dc6e426478b2d29a8e1ad70eb48660f4'


# 第二步:组装data参数
data={"appId":4001,"code":"033qdUtz0LcJsc19tZxz09cTtz0qdUt6"}
# a = str(data)
# print a
# b = '{'+a[45:58] + ','+a[1:43]+'}'
# print b

# 第三步:组装加密字符串拿到sign签名
value = 'data={"appId":4001,"code":"033qdUtz0LcJsc19tZxz09cTtz0qdUt6"}&key=dc6e426478b2d29a8e1ad70eb48660f4'
md5 = hashlib.md5()
md5.update(value)
sign = md5.hexdigest()
print sign

# 第四步:发送接口请求
dic = {"data":'{"appId":4001,"code":"033qdUtz0LcJsc19tZxz09cTtz0qdUt6"}',"sign":sign}
params = {
    "code":'033qdUtz0LcJsc19tZxz09cTtz0qdUt6',
    "params":json.dumps(dic)
}
response = requests.get(url=BASE_URL,params=params)
print response.text
print response.url

接口返回结果:
{"data":"b363e1c071d84757bf164121bad91ede","statusCode":"200"}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信支付接口的测试可以通过以下几个步骤完成: 1. 导入相关的库和模块,例如`requests`和`json`。 2. 设置请求参数,包括appid、mch_id、nonce_str、body、out_trade_no、total_fee等。 3. 生成签名,将请求参数按照ASCII码从小到大排序后,使用MD5加密生成签名。 4. 构建请求的URL,包括微信支付接口的URL以及请求参数。 5. 发送请求,使用POST方法将请求发送到微信支付接口,并获取返回的结果。 6. 解析返回的结果,根据结果判断支付是否成功。 以下是一个示例代码,供您参考: ```python import requests import json import hashlib def generate_sign(params, key): # 将参数按照ASCII码从小到大排序 sorted_params = sorted(params.items(), key=lambda x: x[0]) # 拼接参数和密钥 sign_str = '&'.join([f'{key}={value}' for key, value in sorted_params]) + '&key=' + key # 使用MD5加密生成签名 sign = hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper() return sign # 设置请求参数 params = { 'appid': 'your_appid', 'mch_id': 'your_mch_id', 'nonce_str': 'your_nonce_str', 'body': 'your_order_body', 'out_trade_no': 'your_order_id', 'total_fee': 100, # 其他参数 } # 生成签名 key = 'your_api_key' params['sign'] = generate_sign(params, key) # 构建请求的URL url = 'https://api.mch.weixin.qq.com/pay/unifiedorder' # 发送请求 response = requests.post(url, data=params) # 解析返回的结果 result = json.loads(response.text) # 判断支付是否成功 if result['return_code'] == 'SUCCESS' and result['result_code'] == 'SUCCESS': # 支付成功的处理逻辑 pass else: # 支付失败的处理逻辑 pass ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值