美文网首页
python接口自动化:使用faker库对测试数据进行mock

python接口自动化:使用faker库对测试数据进行mock

作者: DD丿 | 来源:发表于2023-08-08 14:40 被阅读0次

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)

结果:

相关文章

网友评论

      本文标题:python接口自动化:使用faker库对测试数据进行mock

      本文链接:https://www.haomeiwen.com/subject/dudspdtx.html