redirectandroid.py 25.1 KB
Newer Older
liuxiaoxing committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
import requests
import json
import time
import pytest
url1 = 'http://tmtest.trackingio.com/receive/turl/3r5K1h9'
current_time_13 = int(round(time.time() * 1000))
zf35 = '54321422322132132131213133322323233'
zf130 = 'xiaomi小米小米xiaomi小米小米xiaomi小米小米xiaomi小米小米xiaomi小米小米小米xiaomi小米xiaomi小米xiaomi小米xiaomi小米xiaomi小米xiaomi'
zf128 = 'xiaomi小米小米xiaomi小米小米xiaomi小米小米xiaomi小米小米xiaomi小米小米小米xiaomi小米xiaomi小米xiaomi小米xiaomi小米xiaomi小米xiao'
zf64 = 'xiaomi小米小米xiaomi小米小米xiaomi小米小米xiaomi小米小米xiaomi小'
zf468 = '1.2.23.3.4.4232.213123.13.23.213.123.123.213.21.321.3.213.12.321.3.21.321.3.121.2.23.3.4.4232.213123.13.23.213.123.123.2131.2.23.3.4.4232.213123.13.23.213.123.123.213.21.321.3.213.12.321.3.21.321.3.121.2.23.3.4.4232.213123.13.23.213.123.123.213.21.321.3.213.12.321.3.21.321.3.121.2.23.3.4.4232.213123.13.23.213.123.123.213.21.321.3.213.12.321.3.21.321.3.12.21.321.3.213.12.321.3.21.321.3.121.2.23.3.4.4232.213123.13.23.213.123.123.213.21.321.3.213.12.321.3.21.321.3.12'
zf668 = 'Mozilla/5.0 (Linux; U; Android 7.0; zh-cn; Nexus 5X Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0 Chrome/37.0.0.0 MQQBrowser/7.3 Mobile Safari/537.36Mozilla/5.0 (Linux; U; Android 7.0; zh-cn; Nexus 5X Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0 Chrome/37.0.0.0 MQQBrowser/7.3 Mobile Safari/537.36Mozilla/5.0 (Linux; U; Android 7.0; zh-cn; Nexus 5X Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0 Chrome/37.0.0.0 MQQBrowser/7.3 Mobile Safari/537.36Mozilla/5.0 (Linux; U; Android 7.0; zh-cn; Nexus 5X Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0 Chrome/37.0.0.0 MQQBrowser/7.3 Mobile Safari/537.36'
zf256 = '测试广告组名称,广告计划名称,广告创意名称,渠道回调id,渠道回调地址等于256字符广告组名称,广告计划名称,广告创意名称,渠道回调id,渠道回调地址等于256字符广告组名称,广告计划名称,广告创意名称,渠道回调id,渠道回调地址等于256字符广告组名称,广告计划名称fff'
global parms

parms = {
liuxiaoxing committed
17
    'ry_touchpoint_ts': int(round(time.time() * 1000)),
liuxiaoxing committed
18
    # 触点传参时间。is_s2s=1时必传,0时选传。不同渠道有可能传多种格式,详见需求。限制32位字符内。短链传参。
liuxiaoxing committed
19
    'ts': int(round(time.time() * 1000)),
liuxiaoxing committed
20 21 22
    # 集成方式。is_s2s=1为服务器上报触点,0为客户端上报触点。0或1时有不同的参数非空校验,详见需求。固定为0或1。都必传
    'is_s2s': '1',
    # 操作系统。限制16字符内。都选传。短链传参。暂不与app_platform互相做校验。
liuxiaoxing committed
23
    'os': 'android',
liuxiaoxing committed
24 25 26 27 28 29 30 31 32
    # 设备型号。限制64字符内。都选传。短链传参。
    'model': '小米',
    # 用户公网IP v4版本。限制15字符内。is_s2s=1时都必传,0时都选传,0时优先取传参IP,未传参或传参报错时,取http header中的ip作为ipv4的值
    'ipv4': '1.1.1.1',
    # 用户公网IP v6版本。限制128字符内。都选传
    'ipv6': '1.1.1.1',
    # 用户代理信息。限制512字符内。is_s2s=1时都必传,0时都选传,0时优先取传参UA,未传参或报错时,取http header中的user agent作为ua的值
    'ua': 'Mozilla/5.0 (Linux; U; Android 7.0; zh-cn; Nexus 5X Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0 Chrome/37.0.0.0 MQQBrowser/7.3 Mobile Safari/537.36',
    # Android OAID原值。限制512字符内。Android选传,app_platform=ios时报错
liuxiaoxing committed
33
    'oaid': '',
liuxiaoxing committed
34
    # Android OAID原值MD5后转小写。固定为32字符。Android选传,app_platform=ios时报错
liuxiaoxing committed
35
    'oaid_md5': '',
liuxiaoxing committed
36
    # Android主卡IMEI原值。限制32字符内。Android选传,app_platform=ios时报错
liuxiaoxing committed
37
    'imei1': '',
liuxiaoxing committed
38
    # Android主卡IMEI原值MD5后转小写。固定为32字符。Android选传,app_platform=ios时报错
liuxiaoxing committed
39
    'imei1_md5': '',
liuxiaoxing committed
40
    # Android副卡IMEI原值。限制32字符内。Android选传,app_platform=ios时报错
liuxiaoxing committed
41
    'imei2': '',
liuxiaoxing committed
42
    # Android副卡IMEI原值MD5后转小写。固定为32字符。Android选传,app_platform=ios时报错
liuxiaoxing committed
43
    'imei2_md5': '',
liuxiaoxing committed
44
    # Google Advertising ID原值。固定36字符。Android选传,app_platform=ios时报错
liuxiaoxing committed
45
    'gaid': '',
liuxiaoxing committed
46
    # Google Advertising ID原值MD5后转小写。固定为32字符。Android选传,app_platform=ios时报错
liuxiaoxing committed
47
    'gaid_md5': '',
liuxiaoxing committed
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
    # //MAC原值。固定17字符。Android选传,app_platform=ios时报错
    'mac': '',
    # MAC原值MD5后转小写。固定为32字符。Android选传,app_platform=ios时报错
    'mac_md5': '',
    # Android ID原值。固定16字符。Android选传,app_platform=ios时报错
    'android_id': '',
    # Android ID原值MD5后转小写。固定为32字符。Android选传,app_platform=ios时报错
    'android_id_md5': '',
    # 监测短链id。固定7位。
    # 'turl_id': '3r5K1h9',
    # 全部url参数。
    # 'tkul_string': 'xxx',
    # 触点类型。固定为click。都必传
    'touchpoint_type': 'click',
    # 归因类型。固定为ua(user acquirement新客获取)
    'attribution_type': 'ua',

    # 广告账户id。限制64字符内。都选传
    'account_id': '',
    # 广告组id。限制64字符内。都选传
liuxiaoxing committed
68
    'adgroup_id': '23123213213',
liuxiaoxing committed
69
    # 广告组名称。限制256字符内。都选传
liuxiaoxing committed
70
    'adgroup_name': '广告组名称',
liuxiaoxing committed
71 72 73
    # 广告计划id。限制64字符内。都选传
    'adplan_id': '',
    # 广告计划名称。限制256字符内。都选传
liuxiaoxing committed
74
    'adplan_name': '广告计划名称',
liuxiaoxing committed
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
    # 广告创意id。限制128字符内。都选传
    'adcreative_id': '',
    # 广告创意名称。限制256字符内。都选传
    'adcreative_name': '',
    # 创意类型(例如大图、小图、视频等)。限制16字符内。都选传
    'adcreative_type': '',
    # 流量媒体id(例如巨量的今日头条、穿山甲、抖音等)。限制32字符内。都选传
    'site_id': '',
    # 流量媒体名称(例如巨量的今日头条、穿山甲、抖音等)。限制128字符内。都选传
    'site_name': '',
    # 广告类型(例如开屏、信息流、搜索等)。限制32字符内。都选传。
    'ad_type': '',
    # 广告位id。限制64字符内。都选传
    'placement_id': '',
    # 转化id。限制64字符内。都选传
    'conversion_id': '',
    # 广告点击id。限制64字符内。都选传
    'click_id': '',
    # 广告展示id。限制64字符内。都选传
    'impression_id': '',
    # 广告请求id。限制64字符内。都选传
    'request_id': '',
    # 渠道回调id。限制256字符。都选传
    'callback_id': 'EJiw267wvfQCGKf2g74ZIPD89-vIATAMOAFCIjIwMTkxMTI3MTQxMTEzMDEwMDI2MDc3MjE1MTUwNTczNTBIAQ==',
    # 渠道回调地址。限制256字符。都选传
100
    'callback_url': 'https%3A%2F%2Fwww.baidu.com',
liuxiaoxing committed
101 102

    # 自定触点参数集合。都选传。
liuxiaoxing committed
103 104 105
    'custom_params_1': 'custom_params_1',
    'custom_params_10': 'custom_params_10'

liuxiaoxing committed
106 107 108
}
data_temp = json.dumps(parms)

liuxiaoxing committed
109
# 有短链及参数要求的用该方法
liuxiaoxing committed
110 111 112 113 114
def send_request(dl, cs):
    global parms
    url1 = 'http://tmtest.trackingio.com/receive/turl/' + dl + cs
    response = requests.get(url=url1, params=parms, timeout=10, verify=False)
    print(response.url)
liuxiaoxing committed
115
    print(response.text)
liuxiaoxing committed
116 117 118 119
    parms = json.loads(data_temp)
    response = json.loads(response.text)
    return response

liuxiaoxing committed
120 121
# 302跳转时用该方法
def send_request2():
122
    url1 = 'http://tmtest.trackingio.com/receive/turl/QN3eQba'
liuxiaoxing committed
123
    # parms['ts'] = int(round(time.time() * 1000))
liuxiaoxing committed
124 125 126 127 128
    response = requests.get(url=url1, params=parms, timeout=10, verify=False)
    print(response.url)
    # response = json.loads(response.text)
    return response

liuxiaoxing committed
129 130
# 测试归因用的方法,与其他方法区别在于ts为当前时间
def send_request3(cs):
liuxiaoxing committed
131
    global parms
liuxiaoxing committed
132
    # 测试
liuxiaoxing committed
133
    url1 = 'http://tmtest.trackingio.com/receive/turl/M7vIrea' + cs
liuxiaoxing committed
134
    # 线上
liuxiaoxing committed
135
    # url1 = 'http://tkio-redirect.solar-engine.com/receive/turl/FFNn2aa' + cs
liuxiaoxing committed
136
    parms['ts'] = int(round(time.time() * 1000))
liuxiaoxing committed
137
    parms['ry_touchpoint_ts'] = int(round(time.time() * 1000))
liuxiaoxing committed
138 139 140 141 142 143
    response = requests.get(url=url1, params=parms, timeout=10, verify=False)
    print(response.url)
    print(response.text)
    parms = json.loads(data_temp)
    response = json.loads(response.text)
    return response
liuxiaoxing committed
144

liuxiaoxing committed
145 146 147 148


def send_request4():
    global parms
149
    url1 = 'http://tmtest.trackingio.com/receive/turl/QN3eQba'
liuxiaoxing committed
150 151
    # url1 = 'http://tkio-redirect.solar-engine.com/receive/turl/vMvqE3a'

liuxiaoxing committed
152 153 154 155 156 157 158 159
    response = requests.get(url=url1, params=parms, timeout=10, verify=False)
    print(response.url)
    print(response.text)
    parms = json.loads(data_temp)
    response = json.loads(response.text)
    return response


liuxiaoxing committed
160 161 162 163 164 165 166
# 短链错误
def test_dl():
    re = send_request('33322', '')
    assert re["status"] == 166


# 触点传参时间为正常
liuxiaoxing committed
167
def test_ts9():
liuxiaoxing committed
168
    parms['ts'] = current_time_13
liuxiaoxing committed
169
    re = send_request4()
liuxiaoxing committed
170 171 172
    assert re["status"] == 0


liuxiaoxing committed
173
# 触点传参时间超过13字符
liuxiaoxing committed
174 175
def test_ts8():
    parms['ts'] = '16462909436611321'
liuxiaoxing committed
176
    re = send_request4()
liuxiaoxing committed
177 178 179 180
    assert re["status"] == 167


# 触点传参时间等于13字符,但是包含特殊字符
liuxiaoxing committed
181
def test_ts7():
liuxiaoxing committed
182
    parms['ts'] = '1@46290943661'
liuxiaoxing committed
183
    re = send_request4()
liuxiaoxing committed
184 185
    assert re["status"] == 167

liuxiaoxing committed
186

liuxiaoxing committed
187 188 189
# 触点传参时间等于13字符,但是包含汉子
def test_ts0():
    parms['ts'] = '1测4690943661'
liuxiaoxing committed
190
    re = send_request4()
liuxiaoxing committed
191
    assert re["status"] == 167
liuxiaoxing committed
192 193

# iss2s=1,ts为空
liuxiaoxing committed
194
def test_ts6():
liuxiaoxing committed
195 196
    parms['ts'] = ""
    parms['is_s2s'] = "1"
liuxiaoxing committed
197
    re = send_request4()
liuxiaoxing committed
198 199 200 201
    assert re["status"] == 167


# iss2s=0,ts为空,跳转至监测链接的landing_page_url地址
liuxiaoxing committed
202
# 短链有地址时跳转至短链地址,短链无地址时,跳转至app地址
liuxiaoxing committed
203
def test_ts5():
liuxiaoxing committed
204 205
    parms['ts'] = ""
    parms['is_s2s'] = "0"
liuxiaoxing committed
206 207
    send_request2()

liuxiaoxing committed
208 209 210 211 212


# is_s2s为空,默认为0状态,跳转至监测链接的landing_page_url地址
def test_is_s2s1():
    parms['is_s2s'] = ""
liuxiaoxing committed
213 214
    send_request2()

liuxiaoxing committed
215 216 217


# is_s2s非0或者1
liuxiaoxing committed
218
def test_is_s2s2():
liuxiaoxing committed
219
    parms['is_s2s'] = "2"
liuxiaoxing committed
220
    re = send_request4()
liuxiaoxing committed
221 222 223 224 225 226
    assert re["status"] == 165


# 触点类型不为click
def test_touchpoint_type1():
    parms['touchpoint_type'] = 'aaa'
liuxiaoxing committed
227
    re = send_request4()
liuxiaoxing committed
228 229 230 231 232 233
    assert re["status"] == 163


# 触点类型为空
def test_touchpoint_type2():
    parms['touchpoint_type'] = ''
liuxiaoxing committed
234
    re = send_request4()
liuxiaoxing committed
235 236 237 238 239 240
    assert re["status"] == 163


# 归因类型为空
def test_attribution_type1():
    parms['attribution_type'] = ''
liuxiaoxing committed
241
    re = send_request4()
liuxiaoxing committed
242 243 244 245 246 247
    assert re["status"] == 164


# 归因类型为非ua
def test_attribution_type2():
    parms['attribution_type'] = 'test'
liuxiaoxing committed
248
    re = send_request4()
liuxiaoxing committed
249 250 251 252 253 254
    assert re["status"] == 164


# 操作系统为空
def test_os1():
    parms['os'] = ''
liuxiaoxing committed
255
    re = send_request4()
liuxiaoxing committed
256 257 258 259
    assert re["status"] == 0


# 操作系统超过16个字符
liuxiaoxing committed
260
def test_os2():
liuxiaoxing committed
261
    parms['os'] = zf35
liuxiaoxing committed
262
    re = send_request4()
liuxiaoxing committed
263 264 265
    assert re["status"] == 115


liuxiaoxing committed
266

liuxiaoxing committed
267
# 操作系统正常
liuxiaoxing committed
268
def test_os3():
liuxiaoxing committed
269
    parms['os'] = 'iOS'
liuxiaoxing committed
270
    re = send_request4()
liuxiaoxing committed
271 272 273 274
    assert re["status"] == 0


# 操作系统包含特殊字符
liuxiaoxing committed
275
def test_os4():
liuxiaoxing committed
276
    parms['os'] = 'iOS#¥'
liuxiaoxing committed
277
    re = send_request4()
liuxiaoxing committed
278 279
    assert re["status"] == 0

liuxiaoxing committed
280
# 操作系统正常
liuxiaoxing committed
281
def test_os5():
liuxiaoxing committed
282
    parms['os'] = 'android'
liuxiaoxing committed
283
    re = send_request4()
liuxiaoxing committed
284 285
    assert re["status"] == 0

liuxiaoxing committed
286 287 288 289

# 设备型号为空
def test_model1():
    parms['model'] = ''
liuxiaoxing committed
290
    re = send_request4()
liuxiaoxing committed
291 292 293 294 295 296
    assert re["status"] == 0


# 设备型号超过64字符
def test_model2():
    parms['model'] = zf130
liuxiaoxing committed
297
    re = send_request4()
liuxiaoxing committed
298 299 300 301 302 303
    assert re["status"] == 118


# 设备型号=64字符
def test_model3():
    parms['model'] = zf64
liuxiaoxing committed
304
    re = send_request4()
liuxiaoxing committed
305 306 307 308 309 310 311
    assert re["status"] == 0


# 用户公网IP v4版本,is_s2s为1
def test_ipv41():
    parms['model'] = zf64
    parms['is_s2s'] = '1'
liuxiaoxing committed
312
    re = send_request4()
liuxiaoxing committed
313 314 315 316 317 318 319
    assert re["status"] == 0


# 用户公网IP v4版本为空,is_s2s为1
def test_ipv42():
    parms['ipv4'] = ""
    parms['is_s2s'] = '1'
liuxiaoxing committed
320
    re = send_request4()
liuxiaoxing committed
321 322 323 324 325 326
    assert re["status"] == 119


# 用户公网IP v4版本超过15字符
def test_ipv43():
    parms['ipv4'] = zf35
liuxiaoxing committed
327
    re = send_request4()
liuxiaoxing committed
328 329 330 331 332 333 334
    assert re["status"] == 119


# 用户公网IP v4版本为空,is_s2s为0,取http header中的ip作为ipv4/ua的值
def test_ipv44():
    parms['ipv4'] = ""
    parms['is_s2s'] = '0'
liuxiaoxing committed
335 336
    send_request2()

liuxiaoxing committed
337 338 339 340 341 342


# 用户公网IP v4版本不为空,is_s2s为0,取传的ip值
def test_ipv45():
    parms['ipv4'] = "2.34.34.34"
    parms['is_s2s'] = '0'
liuxiaoxing committed
343 344
    send_request2()

liuxiaoxing committed
345 346 347 348

# 用户公网ipv6版本超过128字符
def test_ipv61():
    parms['ipv6'] = zf468
liuxiaoxing committed
349
    re = send_request4()
liuxiaoxing committed
350 351 352 353 354 355
    assert re["status"] == 120


# 用户公网ipv6版本为空
def test_ipv62():
    parms['ipv6'] = ""
liuxiaoxing committed
356
    re = send_request4()
liuxiaoxing committed
357 358 359 360
    assert re["status"] == 0


# 用户公网ipv6版本为空
liuxiaoxing committed
361
def test_ipv63():
liuxiaoxing committed
362
    parms['ipv6'] = ""
liuxiaoxing committed
363
    re = send_request4()
liuxiaoxing committed
364 365 366 367 368 369 370
    assert re["status"] == 0


# 用户代理信息为空,is_s2s=1
def test_ua1():
    parms['ua'] = ""
    parms['is_s2s'] = '1'
liuxiaoxing committed
371
    re = send_request4()
liuxiaoxing committed
372 373 374 375 376 377 378
    assert re["status"] == 121


# 用户代理信息超过512字符
def test_ua2():
    parms['ua'] = zf668
    parms['is_s2s'] = '1'
liuxiaoxing committed
379
    re = send_request4()
liuxiaoxing committed
380 381 382 383
    assert re["status"] == 121


# 用户代理信息为空,is_s2s=0
liuxiaoxing committed
384
def test_ua3():
liuxiaoxing committed
385 386
    parms['ua'] = ''
    parms['is_s2s'] = '0'
liuxiaoxing committed
387
    send_request2()
liuxiaoxing committed
388 389 390 391 392


# OAID超过512字符
def test_oaid1():
    parms['oaid'] = zf668
liuxiaoxing committed
393
    re = send_request4()
liuxiaoxing committed
394 395 396 397 398 399
    assert re["status"] == 126


# OAID为空
def test_oaid2():
    parms['oaid'] = ''
liuxiaoxing committed
400
    re = send_request4()
liuxiaoxing committed
401 402 403 404 405 406
    assert re["status"] == 0


# OAID小于512
def test_oaid3():
    parms['oaid'] = '3DEA635F-B24F-434B-833F-4ED028FEAEEF'
liuxiaoxing committed
407
    re = send_request4()
liuxiaoxing committed
408 409 410 411 412 413
    assert re["status"] == 0


# oaid_md5超过32字符
def test_oaid_md51():
    parms['oaid_md5'] = zf35
liuxiaoxing committed
414
    re = send_request4()
liuxiaoxing committed
415 416 417 418 419 420
    assert re["status"] == 127


# oaid_md5为空
def test_oaid_md52():
    parms['oaid_md5'] = ''
liuxiaoxing committed
421
    re = send_request4()
liuxiaoxing committed
422 423 424 425 426 427
    assert re["status"] == 0


# oaid_md5为32字符
def test_oaid_md53():
    parms['oaid_md5'] = '8e488a40a17aed2f6752f51382a4eafc'
liuxiaoxing committed
428
    re = send_request4()
liuxiaoxing committed
429 430 431 432
    assert re["status"] == 0


# 各个设备的md5为32字符,大写
liuxiaoxing committed
433
def test_oaid_md54():
liuxiaoxing committed
434 435 436
    newlist = ['oaid_md5', 'imei1_md5', 'imei2_md5', 'gaid_md5', 'mac_md5', 'android_id_md5']
    for shebei_md5 in newlist:
        parms[shebei_md5] = '8E488A40A17AED2F6752F51382A4EAFC'
liuxiaoxing committed
437
        re = send_request4()
liuxiaoxing committed
438 439 440 441 442 443
        assert re["status"] == 0


# imei1超过32字符
def test_imei11():
    parms['imei1'] = zf35
liuxiaoxing committed
444
    re = send_request4()
liuxiaoxing committed
445 446 447 448 449 450
    assert re["status"] == 128


# imei1为空
def test_imei12():
    parms['imei1'] = ''
liuxiaoxing committed
451
    re = send_request4()
liuxiaoxing committed
452 453 454 455 456 457
    assert re["status"] == 0


# imei1为正常
def test_imei13():
    parms['imei1'] = '8342732742383'
liuxiaoxing committed
458
    re = send_request4()
liuxiaoxing committed
459 460 461 462 463 464
    assert re["status"] == 0


# imei1_md5非32字符
def test_imei1_md51():
    parms['imei1_md5'] = zf35
liuxiaoxing committed
465
    re = send_request4()
liuxiaoxing committed
466 467 468 469 470 471
    assert re["status"] == 129


# imei1_md5为32字符
def test_imei1_md53():
    parms['imei1_md5'] = '8e488a40a17aed2f6752f51382a4eafc'
liuxiaoxing committed
472
    re = send_request4()
liuxiaoxing committed
473 474 475 476 477 478
    assert re["status"] == 0


# imei1_md5为空
def test_imei1_md52():
    parms['imei1_md5'] = ''
liuxiaoxing committed
479
    re = send_request4()
liuxiaoxing committed
480 481 482 483 484 485
    assert re["status"] == 0


# imei2超过32字符
def test_imei21():
    parms['imei2'] = zf35
liuxiaoxing committed
486
    re = send_request4()
liuxiaoxing committed
487 488 489 490 491 492
    assert re["status"] == 130


# imei2为空
def test_imei22():
    parms['imei2'] = ''
liuxiaoxing committed
493
    re = send_request4()
liuxiaoxing committed
494 495 496 497 498 499
    assert re["status"] == 0


# imei2为32字符内
def test_imei23():
    parms['imei2'] = '8342732742383'
liuxiaoxing committed
500
    re = send_request4()
liuxiaoxing committed
501 502 503 504 505 506
    assert re["status"] == 0


# imei2_md5非32字符
def test_imei2_md51():
    parms['imei2_md5'] = zf35
liuxiaoxing committed
507
    re = send_request4()
liuxiaoxing committed
508 509 510 511 512 513
    assert re["status"] == 131


# imei2_md5为空
def test_imei2_md52():
    parms['imei2_md5'] = ''
liuxiaoxing committed
514
    re = send_request4()
liuxiaoxing committed
515 516 517 518 519 520
    assert re["status"] == 0


# imei2_md5为32字符
def test_imei2_md53():
    parms['imei2_md5'] = '8e488a40a17aed2f6752f51382a4eafc'
liuxiaoxing committed
521
    re = send_request4()
liuxiaoxing committed
522 523 524 525 526 527
    assert re["status"] == 0


# gaid非36字符
def test_gaid1():
    parms['gaid'] = zf35
liuxiaoxing committed
528
    re = send_request4()
liuxiaoxing committed
529 530 531 532 533 534
    assert re["status"] == 132


# gaid为空
def test_gaid2():
    parms['gaid'] = ''
liuxiaoxing committed
535
    re = send_request4()
liuxiaoxing committed
536 537 538 539 540 541
    assert re["status"] == 0


# gaid为36字符
def test_gaid3():
    parms['gaid'] = 'B21C5EC5-9921-42FD-AAC5-07A0EB6CF1A0'
liuxiaoxing committed
542
    re = send_request4()
liuxiaoxing committed
543 544 545 546 547 548
    assert re["status"] == 0


# gaid_md5非32字符
def test_gaid_md51():
    parms['gaid_md5'] = zf35
liuxiaoxing committed
549
    re = send_request4()
liuxiaoxing committed
550 551 552 553 554 555
    assert re["status"] == 133


# gaid_md5为空
def test_gaid_md52():
    parms['gaid_md5'] = ''
liuxiaoxing committed
556
    re = send_request4()
liuxiaoxing committed
557 558 559 560 561 562
    assert re["status"] == 0


# gaid_md5为32 字符
def test_gaid_md53():
    parms['gaid_md5'] = '8e488a40a17aed2f6752f51382a4eafc'
liuxiaoxing committed
563
    re = send_request4()
liuxiaoxing committed
564 565 566 567 568 569
    assert re["status"] == 0


# mac非17个字符
def test_mac1():
    parms['mac'] = "111111"
liuxiaoxing committed
570
    re = send_request4()
liuxiaoxing committed
571 572 573 574 575 576
    assert re["status"] == 134


# mac为空
def test_mac2():
    parms['mac'] = ""
liuxiaoxing committed
577
    re = send_request4()
liuxiaoxing committed
578 579 580 581 582 583
    assert re["status"] == 0


# mac为17字符
def test_mac3():
    parms['mac'] = "08:00:20:0A:8C:6D"
liuxiaoxing committed
584
    re = send_request4()
liuxiaoxing committed
585 586 587 588 589 590
    assert re["status"] == 0


# mac_md5非32字符
def test_mac_md51():
    parms['mac_md5'] = zf35
liuxiaoxing committed
591
    re = send_request4()
liuxiaoxing committed
592 593 594 595 596 597
    assert re["status"] == 135


# mac_md5为空
def test_mac_md52():
    parms['gaid_md5'] = ''
liuxiaoxing committed
598
    re = send_request4()
liuxiaoxing committed
599 600 601 602 603 604
    assert re["status"] == 0


# mac_md5 32字符
def test_mac_md53():
    parms['gaid_md5'] = '8e488a40a17aed2f6752f51382a4eafc'
liuxiaoxing committed
605
    re = send_request4()
liuxiaoxing committed
606 607 608 609 610 611
    assert re["status"] == 0


# android_id非16字符
def test_android_id1():
    parms['android_id'] = zf35
liuxiaoxing committed
612
    re = send_request4()
liuxiaoxing committed
613 614 615 616 617 618
    assert re["status"] == 136


# android_id为空
def test_android_id2():
    parms['android_id'] = ''
liuxiaoxing committed
619
    re = send_request4()
liuxiaoxing committed
620 621 622 623 624 625
    assert re["status"] == 0


# android_id为16字符
def test_android_id3():
    parms['android_id'] = '1a34fc556a43c453'
liuxiaoxing committed
626
    re = send_request4()
liuxiaoxing committed
627 628 629 630 631 632
    assert re["status"] == 0


# android_id_md5非32字符
def test_android_id_md51():
    parms['android_id_md5'] = zf35
liuxiaoxing committed
633
    re = send_request4()
liuxiaoxing committed
634 635 636 637 638 639
    assert re["status"] == 189


# android_id_md5为空
def test_android_id_md52():
    parms['android_id_md5'] = ''
liuxiaoxing committed
640
    re = send_request4()
liuxiaoxing committed
641 642 643 644 645 646
    assert re["status"] == 0


# android_id_md5为32字符
def test_android_id_md53():
    parms['android_id_md5'] = '8e488a40a17aed2f6752f51382a4eafc'
liuxiaoxing committed
647
    re = send_request4()
liuxiaoxing committed
648 649 650 651 652 653
    assert re["status"] == 0


# 短链是安卓,传idfa
def test_idfa1():
    parms['idfa'] = '3DEA635F-B24F-434B-833F-4ED028FEAEEF'
liuxiaoxing committed
654
    re = send_request4()
liuxiaoxing committed
655 656 657 658 659 660
    assert re["status"] == 115


# 短链是安卓,传idfa_md5
def test_idfa_md51():
    parms['idfa_md5'] = '8e488a40a17aed2f6752f51382a4eafc'
liuxiaoxing committed
661
    re = send_request4()
liuxiaoxing committed
662 663 664 665 666 667
    assert re["status"] == 115


# 短链是安卓,传idfv
def test_idfv1():
    parms['idfv'] = '3DEA635F-B24F-434B-833F-4ED028FEAEEF'
liuxiaoxing committed
668
    re = send_request4()
liuxiaoxing committed
669 670 671 672 673 674
    assert re["status"] == 115


# 短链是安卓,传idfv_md5
def test_idfv_md51():
    parms['idfv_md5'] = '8e488a40a17aed2f6752f51382a4eafc'
liuxiaoxing committed
675
    re = send_request4()
liuxiaoxing committed
676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692
    assert re["status"] == 115


# oaid","oaid_md5","imei1","imei1_md5","imei2","imei2_md5","mac","mac_md5","mac1","mac1_md5","gaid","gaid_md5"全部为空
def test_empty():
    parms['oaid'] = ''
    parms['oaid_md5'] = ''
    parms['imei1'] = ''
    parms['imei1_md5'] = ''
    parms['imei2'] = ''
    parms['imei2_md5'] = ''
    parms['mac'] = ''
    parms['mac_md5'] = ''
    parms['mac1'] = ''
    parms['mac1_md5'] = ''
    parms['gaid_md5'] = ''
    parms['gaid'] = ''
liuxiaoxing committed
693
    re = send_request4()
liuxiaoxing committed
694 695 696 697 698 699 700 701 702 703
    assert re["status"] == 0


# 广告相关信息集合为空
def test_ads_data1():
    newlist = ['account_id', 'adgroup_id', 'adgroup_name', 'adplan_id', 'adplan_name', 'adcreative_id',
               'adcreative_name', 'adcreative_type', 'site_id', 'site_name', 'ad_type', 'placement_id', 'conversion_id',
               'click_id', 'impression_id', 'request_id', 'callback_id', 'callback_url']
    for ads_data in newlist:
        parms[ads_data] = ''
liuxiaoxing committed
704
        re = send_request4()
liuxiaoxing committed
705 706 707 708 709 710 711 712 713 714
        assert re["status"] == 0


# 广告账户id,广告组id,广告计划id,广告位id,转化id,广告点击id,广告展示id,广告请求id等于64字符
def test_ads_data2():
    newlist = ['account_id', 'adgroup_id', 'adplan_id',
               'placement_id', 'conversion_id',
               'click_id', 'impression_id', 'request_id']
    for ads_data in newlist:
        parms[ads_data] = zf64
liuxiaoxing committed
715
        re = send_request4()
liuxiaoxing committed
716 717 718 719
        assert re["status"] == 0


# 广告账户id,广告组id,广告计划id,广告位id,转化id,广告点击id,广告展示id,广告请求id超过64字符
liuxiaoxing committed
720
def test_ads_data3():
liuxiaoxing committed
721 722 723 724 725 726 727 728 729 730 731
    newlist = [{'name': 'account_id', 'status': 168},
               {'name': 'adgroup_id', 'status': 169},
               {'name': 'adplan_id', 'status': 171},
               {'name': 'placement_id', 'status': 179},
               {'name': 'conversion_id', 'status': 180},
               {'name': 'click_id', 'status': 181},
               {'name': 'impression_id', 'status': 182},
               {'name': 'request_id', 'status': 183},
               ]
    for ads_data in newlist:
        parms[ads_data['name']] = zf130
liuxiaoxing committed
732
        re = send_request4()
liuxiaoxing committed
733 734 735 736
        assert re["status"] == ads_data['status']


# 广告组名称,广告计划名称,广告创意名称,渠道回调id,渠道回调地址超过256字符
liuxiaoxing committed
737
def test_ads_data4():
liuxiaoxing committed
738 739 740 741 742 743 744 745
    newlist = [{'name': 'adgroup_name', 'status': 170},
               {'name': 'adplan_name', 'status': 172},
               {'name': 'adcreative_name', 'status': 174},
               {'name': 'callback_id', 'status': 184},
               {'name': 'callback_url', 'status': 185},
               ]
    for ads_data in newlist:
        parms[ads_data['name']] = zf468
liuxiaoxing committed
746
        re = send_request4()
liuxiaoxing committed
747 748 749 750
        assert re["status"] == ads_data['status']


# 广告组名称,广告计划名称,广告创意名称,渠道回调id,渠道回调地址等于256字符
liuxiaoxing committed
751
def test_ads_data5():
liuxiaoxing committed
752 753 754 755 756 757 758 759
    newlist = [{'name': 'adgroup_name', 'status': 0},
               {'name': 'adplan_name', 'status': 0},
               {'name': 'adcreative_name', 'status': 0},
               {'name': 'callback_id', 'status': 0},
               {'name': 'callback_url', 'status': 0},
               ]
    for ads_data in newlist:
        parms[ads_data['name']] = zf256
liuxiaoxing committed
760
        re = send_request4()
liuxiaoxing committed
761 762 763 764
        assert re["status"] == ads_data['status']


# 广告组名称,广告计划名称,广告创意名称,渠道回调id,渠道回调地址小于256字符且包含特殊字符
liuxiaoxing committed
765
def test_ads_data6():
liuxiaoxing committed
766 767 768 769 770 771 772 773
    newlist = [{'name': 'adgroup_name', 'status': 0},
               {'name': 'adplan_name', 'status': 0},
               {'name': 'adcreative_name', 'status': 0},
               {'name': 'callback_id', 'status': 0},
               {'name': 'callback_url', 'status': 0},
               ]
    for ads_data in newlist:
        parms[ads_data['name']] = '测试*test'
liuxiaoxing committed
774
        re = send_request4()
liuxiaoxing committed
775 776 777 778
        assert re["status"] == ads_data['status']


# 广告创意id,流量媒体名称超过128字符
liuxiaoxing committed
779
def test_ads_data7():
liuxiaoxing committed
780 781 782 783 784
    newlist = [{'name': 'adcreative_id', 'status': 0},
               {'name': 'site_name', 'status': 0},
               ]
    for ads_data in newlist:
        parms[ads_data['name']] = zf130
liuxiaoxing committed
785
        re = send_request4()
liuxiaoxing committed
786 787 788 789
        assert re["status"] == ads_data['status']


# 广告创意id,流量媒体名称等于128字符
liuxiaoxing committed
790
def test_ads_data8():
liuxiaoxing committed
791 792 793 794 795
    newlist = [{'name': 'adcreative_id', 'status': 0},
               {'name': 'site_name', 'status': 0},
               ]
    for ads_data in newlist:
        parms[ads_data['name']] = zf128
liuxiaoxing committed
796
        re = send_request4()
liuxiaoxing committed
797 798 799 800
        assert re["status"] == ads_data['status']


# 创意类型,广告类型,流量媒体id超过32字符
liuxiaoxing committed
801
def test_ads_data9():
liuxiaoxing committed
802 803 804 805 806 807
    newlist = [{'name': 'adcreative_type', 'status': 175},
               {'name': 'site_id', 'status': 176},
               {'name': 'ad_type', 'status': 178},
               ]
    for ads_data in newlist:
        parms[ads_data['name']] = zf35
liuxiaoxing committed
808
        re = send_request4()
liuxiaoxing committed
809 810 811 812
        assert re["status"] == ads_data['status']


# 创意类型为16字符
liuxiaoxing committed
813
def test_ads_data10():
liuxiaoxing committed
814
    parms['adcreative_type'] = '大图大图大图大图'
liuxiaoxing committed
815
    re = send_request4()
liuxiaoxing committed
816 817 818 819
    assert re["status"] == 0


# 流量媒体id为32字符字符
liuxiaoxing committed
820
def test_ads_data11():
liuxiaoxing committed
821
    parms['site_id'] = '巨量的今日头条、穿山甲、抖音抖音'
liuxiaoxing committed
822
    re = send_request4()
liuxiaoxing committed
823 824 825 826
    assert re["status"] == 0


# 广告类型为32字符字符
liuxiaoxing committed
827
def test_ads_data12():
liuxiaoxing committed
828
    parms['ad_type'] = '巨量的今日头条、穿山甲、抖音抖音'
liuxiaoxing committed
829
    re = send_request4()
liuxiaoxing committed
830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845
    assert re["status"] == 0


# 自定义触点参数1-10,为32字符内
def test_custom_params1():
    parms['custom_params_1'] = '自定义触点参数'
    parms['custom_params_2'] = '3333 带空格'
    parms['custom_params_3'] = '  '
    parms['custom_params_4'] = '32个字符32个字符32个字符32个字符'
    parms['custom_params_5'] = ''
    parms['custom_params_6'] = '……%¥#¥%……¥#'
    parms['custom_params_7'] = '34343244'
    parms['custom_params_8'] = 'tes rwe ew'
    parms['custom_params_9'] = '_自定义'
    parms['custom_params_10'] = 'test@#'

liuxiaoxing committed
846
    re = send_request4()
liuxiaoxing committed
847 848 849 850 851 852
    assert re["status"] == 0


# 自定义触点参数,超过32字符
def test_custom_params2():
    parms['custom_params_1'] = zf35
liuxiaoxing committed
853
    re = send_request4()
liuxiaoxing committed
854 855 856 857 858
    assert re["status"] == 186


if __name__ == '__main__':
    pytest.main()