您的位置:首页 > 编程语言 > Python开发

Python接口自动化测试之request

2018-03-18 22:04 369 查看
今天针对request+unittest给大家补上Demo
首先要安装:pip install PyMySQL用于操作配置文件:configParser接下来为大家介绍项目的目录,已PyDemo为例:

1.初始化接口测试数据2.用于编写接口自动化测试用例3.生成测试报告4.数据库连接配置文件5.生成报告的HTML文件6.执行所有接口测试用例的主方法

数据库连接:
import pymysql.cursors# Connect to the databaseconnection = pymysql.connect(host='127.0.0.1' ,port=3306 ,user='root' ,password='ZY笔记 | 预则立,不预则废' ,db='employees' ,charset='utf8mb4' ,cursorclass=pymysql.cursors.DictCursor)
删除方法:
def clear(self, table_name): # real_sql = "truncate table " + table_name + ";" real_sql = "delete from " + table_name + ";" with self.connection.cursor() as cursor: cursor.execute("SET FOREIGN_KEY_CHECKS=0;") cursor.execute(real_sql) self.connection.commit()
Case编写:
class AddEventTest(unittest.TestCase): ''' 添加发布会 ''' def setUp(self): self.base_url = "http://127.0.0.1:8000/api/add_test/" def tearDown(self): print(self.result) def test_add(self): payload = {'eid':'','':'','limit':'','address':"",'start_time':''} r = requests.post(self.base_url, data=payload) self.result = r.json() self.assertEqual(self.result['status'], 10021) self.assertEqual(self.result['message'], 'parameter error')if __name__ == '__main__': test_data.init_data() # 初始化接口测试数据 unittest.main()
Dbconfig配置:
[mysqlconf] host=127.0.0.1port=3306user=rootpassword=db_name=interface

执行所有case的执行方法:
# 指定测试用例为当前文件夹下的 interface 目录test_dir = './interface'discover = unittest.defaultTestLoader.discover(test_dir, pattern='*_test.py')if __name__ == "__main__": test_data.init_data() # 初始化接口测试数据
now = time.strftime("%Y-%m-%d %H_%M_%S") filename = './report/' + now + '_result.html' fp = open(filename, 'wb') runner = HTMLTestRunner(stream=fp, title='自动化脚本', description='CASE执行结果')runner.run(discover) fp.close()
更多交流:App自动化及Web自动化全栈测试:544126564全国零基础测试转行群:321264545
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息