from faker import Faker
# 调用faker类
fake= Faker()
def fake_mock():
# mock测试数据
serviceOrigin= fake.random_int(3, 4)
orderOrigin= fake.random_int(1, 2)
orderType= fake.random_int(2, 2)
cusCode= fake.numerify(text="######")
cusName= fake.name()
cusGender= fake.random_int(1, 2)
cusMobile= fake.phone_number()
cusEmail= fake.email()
cusProvinceCode= "330000"
cusProvinceName= "浙江省"
cusCityCode= "330100"
cusCityName= "杭州市"
cusDistrictCode= "330106"
cusDistrictName= "西湖区"
cusCommunityName= fake.city() + "小区"
cusAddress= fake.address()
cusComment= fake.sentence()
vehicleType= fake.random_int(1, 2)
vehicleBrandName= "Lotus"
vehicleSeriesName= fake.last_name()[:4]
vehicleModelName= fake.last_name()[:4]
chargerModelName= fake.last_name()[:4]
vehicleStatus= fake.random_int(1, 4)
vehicleVin= fake.numerify(text="###############")
vehiclePredictDate= fake.date()
vehicleLicenceCity= fake.city()
salesmanNumber= fake.numerify(text="######")
salesmanName= fake.name()
salesmanMobile= fake.phone_number()
contactName= fake.name()
contactMobile= fake.phone_number()
contactGender= fake.random_int(1, 2)
contactEmail= fake.email()
contactProvinceCode= "330000"
contactProvinceName= "浙江省"
contactCityCode= "330100"
contactCityName= "杭州市"
contactDistrictCode= "330106"
contactDistrictName= "西湖区"
contactCommunityName= fake.city() + "小区"
contactAddress= fake.address()
visitCoordType= fake.random_int(1, 2)
visitLongitude= fake.pyfloat(positive=True, min_value=1, max_value=99, right_digits=2)
visitLatitude= fake.pyfloat(positive=True, min_value=1, max_value=99, right_digits=2)
contactComment= fake.sentence()
contactTime= fake.date_time().strftime("%Y-%m-%d %H:%M:%S")
visitDate= fake.date_time().strftime("%Y-%m-%d %H:%M")
# 生成实际测试数据字典
real_data= {
"serviceOrigin": serviceOrigin,
"orderOrigin": orderOrigin,
"orderType": orderType,
"cusCode": cusCode,
"cusName": cusName,
"cusGender": cusGender,
"cusMobile": cusMobile,
"cusEmail": cusEmail,
"cusProvinceCode": cusProvinceCode,
"cusProvinceName": cusProvinceName,
"cusCityCode": cusCityCode,
"cusCityName": cusCityName,
"cusDistrictCode": cusDistrictCode,
"cusDistrictName": cusDistrictName,
"cusCommunityName": cusCommunityName,
"cusAddress": cusAddress,
"cusComment": cusComment,
"vehicleType": vehicleType,
"vehicleBrandName": vehicleBrandName,
"vehicleSeriesName": vehicleSeriesName,
"vehicleModelName": vehicleModelName,
"chargerModelName": chargerModelName,
"vehicleStatus": vehicleStatus,
"vehicleVin": vehicleVin,
"vehiclePredictDate": vehiclePredictDate,
"vehicleLicenceCity": vehicleLicenceCity,
"salesmanNumber": salesmanNumber,
"salesmanName": salesmanName,
"salesmanMobile": salesmanMobile,
"contactName": contactName,
"contactMobile": contactMobile,
"contactGender": contactGender,
"contactEmail": contactEmail,
"contactProvinceCode": contactProvinceCode,
"contactProvinceName": contactProvinceName,
"contactCityCode": contactCityCode,
"contactCityName": contactCityName,
"contactDistrictCode": contactDistrictCode,
"contactDistrictName": contactDistrictName,
"contactCommunityName": contactCommunityName,
"contactAddress": contactAddress,
"visitCoordType": visitCoordType,
"visitLongitude": visitLongitude,
"visitLatitude": visitLatitude,
"contactComment": contactComment,
"contactTime": contactTime,
"visitDate": visitDate
}
# 格式化输出实际请求数据字典
for key, valuein real_data.items():
print(f"{key}: {value}")
fake_mock()
测试接口时,可以直接将fake_mock()函数中的测试数据放入json传参,“每次请求都会生成不同的测试数据”
headers = {
'User-Agent': 'Apifox/1.0.0 (https://www.apifox.cn)',
'Content-Type': 'application/json'
}
url = 'www.example.com/a/api/'
fakemock=fake_mock()
# 将字典转换为字符串,不转也行,看接口是否支持
payload=json.dumps(fakemock)
response= requests.request("POST", url,headers=headers, data=payload)
print(response.text)
结果:
![](https://img.haomeiwen.com/i25590772/1a3c8079b705b503.png)
网友评论