接口自动化框架查询手机号归属地

接口自动化框架查询手机号归属地,第1张

接口自动化框架查询手机号归属地

题目:

1、打开postman输入网址及查询手机号,选择json格式,出现下图结果

2、创建文件夹,并用pycharm打开

3、创建如图所示目录

4、在api文件下封装被测系统--手机号测试接口,这里取名phone_api,

存放代码:

class PhoneApi(object):
    def __init__(self):
        self.phone_url = "http://cx.shouji.360.cn/phonearea.php"

    def get_phone_info(self,session,params):
        return session.get(url=self.phone_url,params=params)

 5、在script文件下定义测试脚本,这里取名为PhoneTest

存放代码:

# 导入unittest框架的测试类
import unittest
# 导入requests模块自动封装cookie的Session类
from requests import Session
# 导入api文件下的PhoneApi
from api.phone_api import PhoneApi

class PhoneTest(unittest.TestCase):
    # 一个测试用例里不可能只有一个测试类,
    # 所以要在所有的类开始之前定义一个类级别
    @classmethod
    # 数据化执行开始  setUpClass类方法前置条件,
    # 运行用例前只会执行一次里面的方法 使用必须加装饰器
    # setUpClass(cls) 与 tearDownClass(cls) 并不一定要组合使用,它们是同级关系不是上下级关系,可以单独拆分使用。
    def setUpClass(cls) -> None:
        cls.phone_api = PhoneApi()

    # 数据化执行开始  setUp普通方法前置条件,
 # 每运行一次用例,都会执行一次里面的方法 使用不用加装饰器
    def setUp(self) -> None:
        self.session = Session()

    # 数据化执行结束  setUp普通方法后置条件,
    # 每运行一次用例,都会执行一次里面的方法 使用不用加装饰器
    def tearDown(self) -> None:
        self.session.close()

    # 编写测试用例
    def test_01(self):
        params = {
            "number":"13466920626"
        }
        res = self.phone_api.get_phone_info(self.session,params=params)
        res = res.json()

        # 断言
        self.assertEqual("北京",res["data"]["city"],msg="%s归属地不是北京" % params["number"])

 6、编写执行测试套件入口run_suite

将测试报告模板文件复制到lib文件夹下

import unittest
from lib.HTMLTestRunner import HTMLTestRunner
from script.PhoneTest import PhoneTest

suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(PhoneTest))

f = open('D:/p6课堂练习/phone/lib/report/report.html','wb')
runner = HTMLTestRunner(stream=f,title="手机号归属地查询",description="查询结果")
runner.run(suite)

 7、运行结果

 

8、返回测试脚本PhoneTest,继续编写用例2

import requests
def test_02(self):
    params = {
        "number":"13466920626"
    }
    res = self.phone_api.get_phone_info(self.session,params=params)
    res = res.json()

    yys = res['data']['sp']
    bd_url = "http://www.baidu.com/s"
    p = {'wd':yys}
    ret = requests.get(url=bd_url,params=p)
    ret.encoding = 'utf-8'
    with open('D:/p6课堂练习/phone/lib/report/baidu.html','w',encoding='utf-8') as f:
        f.write(ret.text)

 9、再次运行run_suite

 

10、缺陷报告

 

 

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/3988663.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-10-21
下一篇 2022-10-21

发表评论

登录后才能评论

评论列表(0条)

保存