md5 加密
登录接口的数据中,密码需要进行md5 加密。
md5 加密: 将明文加密为 密文,登录的时候使用密文进行登录。
前提条件
使用 账号已经注册
用户名:13388899999
密码:123456
登录接口
请求方式:Post
请求路径:http://49.233.108.117:28019/api/v1/user/login
请求参数:
{"loginName": "手机号","passwordMd5": "密码进行md5加密"}
python 加密md5
md5 可以在线进行加密: https://md5.hwcha.com/
Python参考官网:
https://docs.python.org/zh-cn/3/library/hashlib.html
import hashlib# 使用 hashlib 的md5 方法进行加密# '123456'.encode() 将字符串进行编码a = hashlib.md5('123456'.encode())# 打印密文print(a.hexdigest()) # e10adc3949ba59abbe56e057f20f883e
登录接口
根据文档,编写代码
import hashlibimport requests# 对密码进行md5 加密passwd = hashlib.md5('123456'.encode()).hexdigest()url = "http://49.233.108.117:28019/api/v1/user/login"body_data = {"loginName": "13388899999","passwordMd5": passwd # 使用md5 加密之后的密文进行登录}r = requests.post(url,json=body_data)print(r.status_code)print(r.json())
post 请求中 data参数和json参数的区别
做post接口的时候,post请求的参数格式主要分为两种
- x-www-formurlencoded
- application/json
具体使用哪种请求参数的格式,一般接口文档中都会有说明。
查看requests 库中的 post 方法的参数
当参数值传给 data 时,requests发送请求的时候 会自动在请求头中添加 x-www-formurlencoded 表单格式数据的声明
data 参数
import hashlibimport requests# 对密码进行md5 加密passwd = hashlib.md5('123456'.encode()).hexdigest()url = "http://49.233.108.117:28019/api/v1/user/login"body_data = {"loginName": "13388899999","passwordMd5": passwd}r = requests.post(url,data=body_data)print(r.status_code)print(r.request.headers) # 'Content-Type': 'application/x-www-form-urlencoded'print(r.json())

这里将请求传给data 数据格式使用的是 x-www-formurlencoded 格式, 而服务器需要json格式的数据,所以会看到返回结果报错。
json参数
import hashlibimport requests# 对密码进行md5 加密passwd = hashlib.md5('123456'.encode()).hexdigest()url = "http://49.233.108.117:28019/api/v1/user/login"body_data = {"loginName": "13388899999","passwordMd5": passwd}r = requests.post(url,json=body_data)print(r.status_code)print(r.request.headers) # 'Content-Type': 'application/x-www-form-urlencoded'print(r.json())

总结
在做接口测试用的时候,如果接口文档中已经说明接口发送参数的类型,
我们之前做的接口使用的是md5 方式进行加密。所以主要调用 python 中的 hashlib 模块,使用里面的md5 方法对参数进行加密之后 传入密文。
