题目:
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、缺陷报告
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)