把操作excel的方法封装好后,就可以用准备好的接口用例来循环遍历了 我的接口测试用例如下 主函数代码: run_handle_excel.py# coding:utf-8 from base.run_method import RunMain from util.handle_excel import * class RunTestCase: def __init__(self): self.Runmain = RunMain() # 实例化调用get/post请求对象 self.data =…
在第六目把主函数写好了,先来运行一下主函数 从截图中可以看到,请求参数打印出来了,和excel中填写的一致 但是每个接口的返回值却都是400,提示参数没有传进去,开始不知道是什么原因(因为excel中params的值已经按照requests的要求写成了字典格式): 后来突然想到一个原因:python从excel中解析出来的数据类型不是字典!!,所以无法传递给requests当做请求参数 接着做了如下实验: 运行结果: 果然,数据类型是'str',不是'dict' 知道原因就好办了,利用json库…
之前学习了使用jmeter+ant做接口测试,并实现了接口的批量维护管理(大概500多条用例),对"接口"以及"接口测试"有了一个基础了解,最近找了一些用python做接口测试的资料,一方面为了学习下如何使用python进行接口测试(如何做出一个简单基础的接口测试框架),另一方面也为了锻炼下如何用python写代码(接触python也有一段时间了,但是每次自己编程总有种提笔忘字的感觉,真是欠练!!) 首先,用python做接口测试,主要用到就是requests库和j…
python中一般使用xlrd(excel read)来读取Excel文件,使用xlwt(excel write)来生成Excel文件(可以控制Excel中单元格的格式),需要注意的是,用xlrd读取excel是不能对其进行操作的:xlrd.open_workbook()方法返回xlrd.Book类型,是只读的,不能对其进行操作.而xlwt.Workbook()返回的xlwt.Workbook类型的save(filepath)方法可以保存excel文件.(参考博客:https://www.cnb…
至此,从excel文件中循环读取接口到把测试结果写进excel,一个简易的接口自动化测试框架就完成了.大概花了1周的时间,利用下班和周末的时间来理顺思路.编写调试代码,当然现在也还有很多不足,例如没有做异常判断,如果某个环节出问题的话,程序就会终止运行...... 其实一整个流程下来,最大的收获是第一次用python写出了一个实用的东西,这套框架已经可以应付我目前的接口测试工作: 说一说我的学习过程: 这套简单框架也是借鉴了其他人的设计思路,我在开始的时候其实并没有一个很好的思路,甚至无从下手,…
1.首先在excel中的expectValue列填好预期结果值 这里判断接口成功的依据是预期结果值是否存在于接口返回的数据中. 首先,要知道在之前封装的get/post请求方法中返回的是‘str’,也就是json格式的字符串 而从excel文件解析出的expectValue也是‘str’,这样就可以将两者对比,来判断expectValue是否存在于接口返回的数据中 使用if进行判断,一个简单的demo: # coding:utf-8 import requests, json url = 'ht…
前面介绍了是用unittest管理测试用例,这次看看如何生成html格式的测试报告 生成html格式的测试报告需要用到 HTMLTestRunner,在网上下载了一个HTMLTestRunner.py,然后放到python安装路径下的lib目录中. (我用的python3,是下载的虫师写的那个,下载地址-->链接:https://pan.baidu.com/s/101y-X--o6iSd9WTDv5K4XQ 密码:24xh) 1.执行单个.py文件中的测试用例 # -*-coding:UTF:8…
在第一目里写了几个简单demo,并把调用get和post请求的方法封装到了一个类里,这次结合python自带的unittest框架,用之前封装的方法来写一个接口测试demo 1.unittest简单用法 # -*-coding:UTF:8-*- import unittest class TestMethod(unittest.TestCase): # 定义一个类,继承自unittest.TestCase # 每次执行用例前执行setUp(),可以在这里做一些初始化的工作 def setUp(s…
脚本执行步骤: 1.还原测试数据库: 2.读取接口用例CSV文件到数据库: 3.执行数据库中标记执行的用例: 4.对比预期结果,将测试结果写入数据库结果表中. 数据管理: 事先备份测试数据库,并搭建自动化接口测试环境: 以备份数据库中的数据为测试数据来源,设计用例时用到的数据参数可在库中拿取(相较于之前设计的数据引擎,节省了脚本维护量以及降低了用例编写难度): 执行脚本后,备份数据库中的数据更新变化,可以作为预期结果的数据依据(这里可以做到结果的完整断言,结果预期判断准确大大提高). 故而每次执…
1.只运行某一条case 把光标移动到某一条case后面,然后右键,选择"Run..."来运行程序 此时,pycharm会只运行光标所在位置的这一条case 2.如果想执行全部case,需要把光标移动到  "if __name__ == "__main__": "后面,一般情况下会运行全部的case: 但是如果在 "if __name__ == "__main__": "下面添加了测试套件,同样把光标移动到…