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 68 69 70 71 72 73 74 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 100 101 102
    # //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字符内。都选传
    'adgroup_id': '',
    # 广告组名称。限制256字符内。都选传
    'adgroup_name': '',
    # 广告计划id。限制64字符内。都选传
    'adplan_id': '',
    # 广告计划名称。限制256字符内。都选传
    'adplan_name': '',
    # 广告创意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字符。都选传
    'callback_url': 'http%3A%2F%2Ftracking.e.qq.com%2Fconv%3Fcb%3DMTIzYWJjNDU2ZGVm%26conv_id%3D12345678',

    # 自定触点参数集合。都选传。
liuxiaoxing committed
103
    'custom_params_1': 'null'
liuxiaoxing committed
104 105 106
}
data_temp = json.dumps(parms)

liuxiaoxing committed
107
# 有短链及参数要求的用该方法
liuxiaoxing committed
108 109 110 111 112
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
113
    print(response.text)
liuxiaoxing committed
114 115 116 117
    parms = json.loads(data_temp)
    response = json.loads(response.text)
    return response

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

liuxiaoxing committed
127 128
# 测试归因用的方法,与其他方法区别在于ts为当前时间
def send_request3(cs):
liuxiaoxing committed
129
    global parms
liuxiaoxing committed
130 131 132 133
    # 测试
    # url1 = 'http://tmtest.trackingio.com/receive/turl/B73uQja' + cs
    # 线上
    url1 = 'http://tkio-redirect.solar-engine.com/receive/turl/vMvqE3a' + cs
liuxiaoxing committed
134 135 136 137 138 139 140
    parms['ts'] = int(round(time.time() * 1000))
    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
141

liuxiaoxing committed
142 143 144 145 146 147 148


# 没有短链及参数要求的用该方法,测试环境默认参数为2586渠道短链
# appeky:0dd83bd5079ab3b20d9e66ebb195f6c4
def send_request4():
    global parms
    url1 = 'http://tmtest.trackingio.com/receive/turl/zMFjQva'
liuxiaoxing committed
149 150
    # url1 = 'http://tkio-redirect.solar-engine.com/receive/turl/vMvqE3a'

liuxiaoxing committed
151 152 153 154 155 156 157 158
    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
159 160 161 162 163 164 165
# 短链错误
def test_dl():
    re = send_request('33322', '')
    assert re["status"] == 166


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


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


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

liuxiaoxing committed
185

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

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


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

liuxiaoxing committed
207 208 209 210 211


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

liuxiaoxing committed
214 215 216


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


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


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


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


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


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


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


liuxiaoxing committed
265

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


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

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

liuxiaoxing committed
285 286 287 288

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


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


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


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


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


# 用户公网IP v4版本超过15字符
def test_ipv43():
    parms['ipv4'] = zf35
liuxiaoxing committed
326
    re = send_request4()
liuxiaoxing committed
327 328 329 330 331 332 333
    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
334 335
    send_request2()

liuxiaoxing committed
336 337 338 339 340 341


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

liuxiaoxing committed
344 345 346 347

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


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


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


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


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


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


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


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


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


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


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


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


# 各个设备的md5为32字符,大写
liuxiaoxing committed
432
def test_oaid_md54():
liuxiaoxing committed
433 434 435
    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
436
        re = send_request4()
liuxiaoxing committed
437 438 439 440 441 442
        assert re["status"] == 0


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


# 短链是安卓,传idfv_md5
def test_idfv_md51():
    parms['idfv_md5'] = '8e488a40a17aed2f6752f51382a4eafc'
liuxiaoxing committed
674
    re = send_request4()
liuxiaoxing committed
675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691
    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
692
    re = send_request4()
liuxiaoxing committed
693 694 695 696 697 698 699 700 701 702
    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
703
        re = send_request4()
liuxiaoxing committed
704 705 706 707 708 709 710 711 712 713
        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
714
        re = send_request4()
liuxiaoxing committed
715 716 717 718
        assert re["status"] == 0


# 广告账户id,广告组id,广告计划id,广告位id,转化id,广告点击id,广告展示id,广告请求id超过64字符
liuxiaoxing committed
719
def test_ads_data3():
liuxiaoxing committed
720 721 722 723 724 725 726 727 728 729 730
    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
731
        re = send_request4()
liuxiaoxing committed
732 733 734 735
        assert re["status"] == ads_data['status']


# 广告组名称,广告计划名称,广告创意名称,渠道回调id,渠道回调地址超过256字符
liuxiaoxing committed
736
def test_ads_data4():
liuxiaoxing committed
737 738 739 740 741 742 743 744
    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
745
        re = send_request4()
liuxiaoxing committed
746 747 748 749
        assert re["status"] == ads_data['status']


# 广告组名称,广告计划名称,广告创意名称,渠道回调id,渠道回调地址等于256字符
liuxiaoxing committed
750
def test_ads_data5():
liuxiaoxing committed
751 752 753 754 755 756 757 758
    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
759
        re = send_request4()
liuxiaoxing committed
760 761 762 763
        assert re["status"] == ads_data['status']


# 广告组名称,广告计划名称,广告创意名称,渠道回调id,渠道回调地址小于256字符且包含特殊字符
liuxiaoxing committed
764
def test_ads_data6():
liuxiaoxing committed
765 766 767 768 769 770 771 772
    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
773
        re = send_request4()
liuxiaoxing committed
774 775 776 777
        assert re["status"] == ads_data['status']


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


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


# 创意类型,广告类型,流量媒体id超过32字符
liuxiaoxing committed
800
def test_ads_data9():
liuxiaoxing committed
801 802 803 804 805 806
    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
807
        re = send_request4()
liuxiaoxing committed
808 809 810 811
        assert re["status"] == ads_data['status']


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


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


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


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


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