1. 程式人生 > 實用技巧 >領導要我6點下班前建立1000個有效的手機號,現在5點半了!教你用random模組10分鐘搞定!

領導要我6點下班前建立1000個有效的手機號,現在5點半了!教你用random模組10分鐘搞定!

前言

軟體測試工作中,經常需要用到很多手機號進行註冊或其它操作,如何生成有效有手機號呢?我們可以使用random模組生成手機號

python指令碼生成隨機手機號碼

#! /usr/bin/python3

# @Time    : 2020/8/8 10:40
# @Author  :  公眾號測試員小何

import random

def greatphone():
    """生成隨機手機號"""

    # choice方法隨機抽取列表中的手機號碼段
    str_start=random.choice(['135','136','138', "186"])
    # sample方法,列表中隨機抽取8個尾數
    str_end = ''.join(random.sample('0123456789', 8))
    phone = str_start + str_end
    # 返回的手機號用於傳給API檢驗
    return phone
1234567891011121314151617

通過 API介面獲取手機號碼歸屬地

介面地址:http://apis.juhe.cn/mobile/get

返回格式:json/xml

請求方式:get

請求示例:http://apis.juhe.cn/mobile/get?phone=13429667914&key=您申請的KEY

#! /usr/bin/python3

# @Time    : 2020/8/8 17:03
# @Author  : 公眾號測試員小何

import unittest
import requests
import json
from day2 import GreatPhone

class Test_Moblie(unittest.TestCase):

# 封裝公共的資料
def common(self, phone):
	url = "http://apis.juhe.cn/mobile/get"
        date = {
            'key': "4391b7dd8213662798c3ac3da9f54ca8",
            'phone': phone
        }
        self.response = requests.get(url, params=date)
        return self.response

    def test_1(self):
        self.common(GreatPhone.phone())
        print(self.response.text)

if __name__ == '__main__':
    unittest.main()
12345678910111213141516171819202122232425262728

執行結果

{"resultcode":"200","reason":"Return Successd!","result":{"province":"廣東","city":"東莞","areacode":"0769","zip":"523000","company":"聯通","card":""},"error_code":0}
1

我們經常是使用免費的API去檢測手機號的正確性,在想有沒有更簡單的方式來檢驗呢?當然是有的,有一個第3方的模組:phone可以簡單的處理這個問題

通過 phone模組獲取手機號碼歸屬地

安裝模組

pip install phone

#! /usr/bin/python3
# -*- coding:utf-8 -*-'

# @FileName: day4.py
# @Time    : 2020/8/8 20:47
# @Author  : 公眾號測試員小何

import phone
from day2 import GreatPhone

# 獲取手機號
n_phone = GreatPhone.phone()
print(n_phone)

# 獲取手機號相關歸屬資訊
phone_info = phone.Phone().find(n_phone)
print(phone_info)
1234567891011121314151617

執行結果

{'phone': '13534619807', 'province': '廣東', 'city': '潮州', 'zip_code': '521000', 'area_code': '0768