work_20181203_httprequest.py:
import  requests
class http_request: def http_get(url,params):
res = requests.get(url,params)
return res def http_post(url,params,cookies = None):
res = requests.post(url,params,cookies = cookies)
return res
work_20181203_testcase.py:

#-*- coding:utf-8 -*-
# author:jiaxy
# datetime:2018/12/3 14:03
# file: work_20181203_testcase.py '''
登录 login='http://47.107.168.87:8080/futureloan/mvc/api/member/login'
login_data={'mobilephone':18688773467,'pwd':'123456'} 充值 recharge='http://47.107.168.87:8080/futureloan/mvc/api/member/recharge'
recharge_data={'mobilephone':18688773467,'amount':'1000'}
''' import unittest
from jiaxy.work_20181203_httprequest import http_request class Test(unittest.TestCase): login = 'http://47.107.168.87:8080/futureloan/mvc/api/member/login'
login_data={'mobilephone':18688773467,'pwd':'123456'}
recharge = 'http://47.107.168.87:8080/futureloan/mvc/api/member/recharge'
recharge_data={'mobilephone':18688773467,'amount':'1000'} def setUp(self):
print('开始测试...') def tearDown(self):
print('测试完成...') def test_001_login_nomobie(self):
login_url = self.login
login_data = {'mobilephone':'','pwd':'123456'}
login_msg = http_request.http_get(login_url,login_data)
try:
self.assertEquals('手机号不能为空',login_msg.json()['msg'])
print('test_001_login_nomobie 测试通过')
except Exception as e:
print('test_001_login_nomobie 测试不通过')
raise e def test_002_login_nopwd(self):
login_url = self.login
login_data = {'mobilephone':18688773467,'pwd':''}
login_msg = http_request.http_get(login_url,login_data)
try:
self.assertEquals('密码不能为空',login_msg.json()['msg'])
print('test_002_login_nopwd 测试通过')
except Exception as e:
print('test_002_login_nopwd 测试不通过')
raise e def test_003_login_errorpwd(self):
login_url = self.login
login_data = {'mobilephone':18688773467,'pwd':'12345'}
login_msg = http_request.http_get(login_url,login_data)
try:
self.assertEquals('用户名或密码错误',login_msg.json()['msg'])
print('test_003_login_errorpwd 测试通过')
except Exception as e:
print('test_003_login_errorpwd 测试不通过')
raise e def test_004_login_success(self):
login_url = self.login
login_data = self.login_data
login_msg = http_request.http_get(login_url,login_data)
try:
self.assertEquals('登录成功',login_msg.json()['msg'])
print('test_004_login_success 测试通过')
cookies = login_msg.cookies
except Exception as e:
print('test_004_login_success 测试不通过')
raise e
cookies = None
return cookies def test_005_recharge_success(self):
recharge_url = self.recharge
recharge_data = self.recharge_data
cookies = self.test_004_login_success()
recharge_msg = http_request.http_post(recharge_url,recharge_data,cookies = cookies)
try:
self.assertEquals('充值成功',recharge_msg.json()['msg'])
print('test_005_recharge_success 测试通过')
except Exception as e:
print('test_005_recharge_success 测试不通过')
raise e def test_006_recharge_nomobile(self):
recharge_url = self.recharge
recharge_data = {'mobilephone':'','amount':'1000'}
cookies = self.test_004_login_success()
recharge_msg = http_request.http_post(recharge_url,recharge_data,cookies = cookies)
try:
self.assertEquals('手机号不能为空',recharge_msg.json()['msg'])
print('test_006_recharge_nomobile 测试通过')
except Exception as e:
print('test_006_recharge_nomobile 测试不通过')
raise e def test_007_recharge_errmobile(self):
recharge_url = self.recharge
recharge_data = {'mobilephone':1868877346,'amount':'1000'}
cookies = self.test_004_login_success()
recharge_msg = http_request.http_post(recharge_url,recharge_data,cookies = cookies)
try:
self.assertEquals('手机号码格式不正确',recharge_msg.json()['msg'])
print('test_007_recharge_errmobile 测试通过')
except Exception as e:
print('test_007_recharge_errmobile 测试不通过')
raise e def test_008_recharge_nocharge(self):
recharge_url = self.recharge
recharge_data = {'mobilephone':18688773467,'amount':''}
cookies = self.test_004_login_success()
recharge_msg = http_request.http_post(recharge_url,recharge_data,cookies = cookies)
try:
self.assertEquals('请输入金额',recharge_msg.json()['msg'])
print('test_008_recharge_nocharge 测试通过')
except Exception as e:
print('test_008_recharge_nocharge 测试不通过')
raise e def test_009_recharge_toolargecharge(self):
recharge_url = self.recharge
recharge_data = {'mobilephone':18688773467,'amount':'10000000000000000000000'}
cookies = self.test_004_login_success()
recharge_msg = http_request.http_post(recharge_url,recharge_data,cookies = cookies)
try:
self.assertEquals('请输入范围在0到50万之间的正数金额',recharge_msg.json()['msg'])
print('test_009_recharge_toolargecharge 测试通过')
except Exception as e:
print('test_009_recharge_toolargecharge 测试不通过')
raise e
work_20181203_testrun.py:

#-*- coding:utf-8 -*-
# author:jiaxy
# datetime:2018/12/3 14:04
# file: work_20181203_testrun.py from jiaxy import work_20181203_testcase
import HTMLTestRunner
import unittest def runTest():
suite = unittest.TestSuite()
loader = unittest.TestLoader()
suite.addTest(loader.loadTestsFromModule(work_20181203_testcase))
with open('test_result.html','wb+') as file:
runner = HTMLTestRunner.HTMLTestRunner(
stream = file,
verbosity = 2
)
runner.run(suite) if __name__ == '__main__':
runTest() 测试报告:
 

ptyhon - 接口自动化测试实战case1的更多相关文章

  1. python - 接口自动化测试实战 - case1 - 再次优化版

    本次优化: 1.  各级分Package 2.  封装[ReadExcel]类 3.  封装[ReadConfig]类 4.  封装[GetLog]类 5.  引入ddt数据驱动测试,优化测试用例代码 ...

  2. python - 接口自动化测试实战 - case1 - 优化版

    题目: 基于以下两个接口和数据完成接口自动化测试,并生成测试报告: '''登录 login='http://47.107.168.87:8080/futureloan/mvc/api/member/l ...

  3. 面面俱到的Java接口自动化测试实战

    第1章 接口自动化测试整体认知了解什么是接口和为什么要做接口测试.并且知道接口自动化测试应该学习哪些技术以及接口自动化测试的落地过程. 1-1 导学章节 1-2 什么是接口 1-3 为什么要做接口测试 ...

  4. Python接口自动化测试实战-----附源码

    目录 1. 接口定义 2. 基本流程 3. 需求分析 4. 用例设计 5. 脚本开发 6. 结果分析 接口定义: 接口普遍有两种意思,一种是API(Application Program Interf ...

  5. Java接口自动化测试实战笔记

    综述 代码管理工具Git 测试框架 TestNG 测试报告 Mock 接口框架 HTTP 协议接口 测试框架 HttpClient SprintBoot 自动化测试开发 数据持久层框架 MyBatis ...

  6. 【三】Jmeter接口自动化测试系列之Http接口自动化实战

    作者:大虫 本文介绍 Jmeter 工具的 http 接口 自动化测试 实战! 为了通用性,就拿知乎 网站作为实战例子吧! 必备技能:http接口基础知识.抓包,本文不做详细介绍,不会的可以先百度恶补 ...

  7. 关于《Python自动化测试实战》

    作者有话说 笔者写这本书的初心是想通过自身经验分享一些在自动化测试领域中的实用技术,能够帮助那些正在从事自动化测试相关工作或者准备转型自动化测试的测试人员.任何一门技术涵盖的知识点都是非常广泛的,可能 ...

  8. Python接口自动化测试框架实战 从设计到开发

    第1章 课程介绍(不要错过)本章主要讲解课程的详细安排.课程学习要求.课程面向用户等,让大家很直观的对课程有整体认知! 第2章 接口测试工具Fiddler的运用本章重点讲解如何抓app\web的htt ...

  9. 性能测试学习之路 (四)jmeter 脚本开发实战(JDBC &JMS &接口脚本 & 轻量级接口自动化测试框架)

    1.业务级脚本开发 登录脚本->思路:在线程组下新建两个HTTP请求,一个是完成访问登录页,一个是完成登录的数据提交.   步骤如下: 1) 访问登录页 2) 提交登录数据的HTTP PS:对于 ...

随机推荐

  1. EF6 CodeFirst连接MySql 报nvarchar('max')错误解决办法

    1.在DBContext类加标签[DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))] 2.在Nuget控制台输入u ...

  2. js当前日期

    function CurentTime()    {         var now = new Date();               var year = now.getFullYear(); ...

  3. Windows Azure 配置Active Directory 主机(2)

    前一篇概况给大家介绍了,在云端部署一台DC 需要满足一些条件,接下来进入正题,云端VM安装域控制器具体步骤. 步骤1 :验证 主DC 的静态 IP 地址 1.登录到 Corp 网络上的 主DC. 2. ...

  4. Java 继承与重写

    1.类的继承 1)继承 父类:所有子类所共有的属性和行为 子类:子类所特有的属性和行为 通过extends关键字来实现类的继承 子类(Sub class)可以继承父类(Super class)的成员变 ...

  5. 洛谷 P2383 狗哥玩木棒

    题目背景 狗哥又趁着语文课干些无聊的事了... 题目描述 现给出一些木棒长度,那么狗哥能否用给出的木棒(木棒全用完)组成一个正方形呢? 输入输出格式 输入格式: 输入文件中的第一行是一个整数n表示测试 ...

  6. java面试题(杨晓峰)---第四讲强引用、软引用、弱引用、幻想引用有什么区别?

    在java语言中,除了原始数据类型的变量,其他所有都是所谓的引用类型,指向各种不同的对象,理解引用对于掌握java对象生命周期和JVM内部相关机制非常有帮助. 今天问题:强引用.软引用.弱引用.幻想引 ...

  7. 3. Netbackup 7.6客户端的安装(windows/linux)

    1 客户端的安装 1.1 Windows客户端安装 1.1.1 客户端hosts修改 windows xp/2003/vista/2008/7/8用户HOSTS文件是在“c:\windows\syst ...

  8. ecplise——python not configured报错

    解决方法:点击window——preferences——PyDey——pythonInterprter 最后成功

  9. JS编程规范指南

    原文:github.com/ryanmcdermott/clean-code-javascript 说明:本文翻译自 github 上的一个项目,只取部分精华. 一.变量 用有意义且常用的单词命名 / ...

  10. SC || Chapter 8

    栈:方法调用和局部变量的存储位置,保存基本类型 堆:在一块内存里分为多个小块,每块包含 一个对象,或者未被占用