题目:

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 PhoneApiclass 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 PhoneTestsuite = 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、缺陷报告

接口自动化框架查询手机号归属地相关推荐

  1. pytest+yaml设计接口自动化框架过程记录(一步一步记录如何设计,完结撒花),源码提供,视频教程

    pytest+yaml设计接口自动化框架过程记录 第三代框架使用教程,该框架比现在这个完善了很多 框架简介 框架运行演示和功能介绍视频 pytest+yaml框架环境配置和使用教程 0.去年也写了一个 ...

  2. Python语言+pytest框架+allure报告+log日志+yaml文件+mysql断言实现接口自动化框架

    目录 前言 实现功能 目录结构 依赖库 安装教程 接口文档 如何创建用例 创建用例步骤 用例中相关字段的介绍 如何发送get请求 如何发送post请求 如何测试上传文件接口 上传文件接口,即需要上传文 ...

  3. 浅谈python+requests接口自动化框架

    为什么要做接口自动化框架 1.业务与配置的分离 2.数据与程序的分离:数据的变更不影响程序 3.有日志功能,实现无人值守 4.自动发送测试报告 5.不懂编程的测试人员也可以进行测试 正常接口测试的流程 ...

  4. python api开发用什么框架_python+requests接口自动化框架

    为什么要做接口自动化框架 1.业务与配置的分离 2.数据与程序的分离:数据的变更不影响程序 3.有日志功能,实现无人值守 4.自动发送测试报告 5.不懂编程的测试人员也可以进行测试 正常接口测试的流程 ...

  5. 用python画风车_python接口自动化()一)(实现一款简单的接口自动化框架)

    python接口自动化一(设计一款自己的接口自动化框架) 一.起因: 前面学习过了python接口requests来进行接口测试,但是在框架选择上还是选择的unittest.当接口数量不怎么多时还好, ...

  6. 转:Jenkins+Jmeter+ant接口自动化框架for Linux学习

    Jenkins+Jmeter+ant接口自动化框架for Linux学习 2018年06月08日 17:55:31 杀生丸的玲 阅读数:1031 版权声明: https://blog.csdn.net ...

  7. pytest文档73-pytest+yaml实现接口自动化框架之用例参数关联

    前言 使用 yaml 文件写测试用例的时候,如何在 yaml 文件的测试用例里面实现参数关联? 这是很多做自动化测试的小伙伴经常思考的一个问题. 接着前面的pytest+yaml 文件实现接口自动化框 ...

  8. python+requests+pytest 接口自动化框架(四)

    目录 一.requests库简介 二.requests库常用方法 三.request()返回的response对象 四.实战案例 post(url, data=None, json=None, **k ...

  9. python+requests+pytest 接口自动化框架(一)

    目录 一.Pytest详解以及常用的插件安装 二.Pytest默认的测试用例的规则 三.Pytest用例运行方式以及参数 1.命令行模式运行 命令:pytes 2.主函数模式运行 3.基于pytest ...

最新文章

  1. set RowCount 与 top n
  2. WebMessenger完善后将作为一个开源项目
  3. 怎样将包含元组的列表转换为字典?
  4. 网上选课系统的php代码,网上选课系统(论文+程序)
  5. .NET异步程序设计之任务并行库
  6. 如何在CLI命令行下运行PHP脚本,同时向PHP脚本传递参数?
  7. SmartUpload上传下载使用
  8. Flutter时间工具类封装
  9. laravel5.6 邮件队列database驱动简单demo
  10. linux进行硬盘分区挂载-了解系统,最更好的开发
  11. 前端页面使用ace插件优化脚本
  12. java版spring cloud+spring boot+redis社交电子商务平台(十七)上传文件
  13. Node.js IP 库引擎 lib-qqwry v1.3.0 发布,支持命令行下使用
  14. CCNP系列三十四--- Bgp的本地优先属性
  15. 1、fiddler 下载、安装、配置
  16. 文字图片灰度化matlab,采用matlab将图像灰度化的方法
  17. 计算机c盘垃圾,详解win7怎么清理C盘垃圾
  18. 相对(relative)定位和绝对(absolute)定位
  19. python程序设计题库-python编程题库
  20. 社工利器--setoolkit之钓鱼攻击

热门文章

  1. Hive之Rank函数
  2. libmysqlclient_18 not defined in file libmysqlclient.so.18
  3. Linux 终端生存指南
  4. 《从1到N企业数字化生存指南》读书笔记
  5. NVIDIA LinkX 助力InfiniBand网络高速稳定与可靠传输
  6. CAPA换届大会召开,发布信息无障碍最新报告及“可及APP”
  7. Java初级试题(编程、简答、选择)
  8. QT:表格操作QTableView详解
  9. Java常用类库之String
  10. Unity粒子系统参数解析(一)