码迷,mamicode.com
首页 > 其他好文 > 详细

接口测试实践回顾

时间:2018-02-11 12:42:55      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:class   路由   结束   mysq   run   自己   one   自动化测试   requests   

前段时间系统学习了测试专家虫师的《Web接口开发与自动化测试--基于Python语言》,自己也模仿完成了项目,收获颇丰。由于服务端没有错误日志输出,在定位错误、接口调试过程中,postman和fiddler起到了很大的作用。过去单独学习这两个工具,并没有感觉到它们的强大,果然,在项目实战中学习更有效率!

在已有项目的基础上,又对所有接口进行了优化,增加了10个接口:实现了http basic认证版本的接口和md5摘要认证版本的接口。另外,实现了自动发送测试报告邮件的功能。

接口测试还有一些常见的场景,例如获取cookie自动登录,对https接口处理,使用mock模拟等,这次项目暂时没有涉及到,未来完善。

回顾如下:

github地址:https://github.com/yulifromchina/InterfaceTest

一、项目成果展示

技术分享图片技术分享图片

技术分享图片

技术分享图片

技术分享图片

二、项目所用技术

开发平台:windows 10 x64 + pycharm + python3.6 + mysql 5.7.21

签到系统:django  2.0.1 + django-bootstrap3-9.1.0

测试框架:requests 2.18.4

三、项目具体介绍

1、发布会签到系统

发布会签到系统的功能包括:登录、发布会管理、嘉宾管理、签到功能

大致逻辑为:用户登录时向服务器发起Post请求,通过django的auth模块进行验证,并把用户信息存储在服务器session中。在登录的情况下,用户可以浏览发布会,嘉宾列表,以及进入发布会管理页面后签到。如果没有登录,则无法访问这些页面(通过django的login_required装饰器实现)。用户输入手机号签到,后台将手机号和发布会作为联合主键到后台数据库验证,并进行是否已签到、发布会是否已经结束等判断,最后返回签到结果。

以上逻辑均通过不同的路由以及回调函数进行响应,回调函数将数据从数据库取出,经模板渲染后返回给浏览器显示。

提供的接口如下:

技术分享图片

2、测试框架

测试框架的结构如下:

技术分享图片

对接口进行请求,使用了requests库;

case的组织,使用了unittest测试框架;

测试报告,使用了HTMLTestRunner生成;

测试数据,使用了MySQL数据库存储;

邮件发送,使用了smtplib和email库。

 

每个接口包括若干个用例,每个接口的测试由一个py文件负责:

技术分享图片

四、项目总结

接口测试有一些专业的平台提供服务,例如三剑客接口测试平台,是使用现场的平台还是自己开发测试框架,或者二次开发,取决于项目的具体情况,没有绝对的好坏。通过实际完成接口,并对接口进行编写,加深了认识,相信能够更好的使用工具。使用django开发项目,快速且结构清晰。

项目中存在一个bug没有解决。在run_test.py中,目前不能raw_*.py, http_*.py,md5_*.py三个版本的15个用例一起运行,只能分三批运行。因为这三个批次的接口,往数据库中插入的是同一批数据,因此一起运行会造成数据污染。尝试在三次运行间进行了清空数据库再重新插入数据的操作,但是这个插入操作会失败。没有定位到原因。如果有大牛解决过类似情况,望指教!多谢!

接口测试实践回顾

标签:class   路由   结束   mysq   run   自己   one   自动化测试   requests   

原文地址:https://www.cnblogs.com/bluebirid/p/8440555.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!