自动化测试总结
2016-04-11 15:32
274 查看
最近学了点持续集成,自动化测试,mockserver。接口测试中用到了Jenkins,它是一个持续化继承的的引擎,持续集成的价值,就是提前发现问题,使得网站提前发现bug,这样就可以减少费用开支,减少风险,减少重复过程,等功能。
持续化集成的要素:
1.统一的代码库
2.自动构建
3.自动测试
4.每个人每天都要向代码库主干提交代码
5.每次代码递交后都会在持续集成服务器上触发一次构建
6.保证快速构建
7.模拟生产环境的自动测试
8.每个人都可以很容易的获取最新可执行的应用程序
9.每个人都清楚正在发生的状况
10.自动化的部署
其中还用到一些工具,postman,newman,这俩个工具是对开发人员请求网站时返回的数据可以清楚的查看。
然后就是Python测试的部分,用到unittest库,这个库可以用来测试用,和java中的测试基本一样。不过这个要对get,和post俩个http协议中的方法要了解点。
接下来就是mockserver了,开发过程中需要依赖一些接口,这些接口要么是搭建环境困难,要么是还没有实现,要么是交互比较复杂。这种情况下,使用mock server来mock这些接口,以便开发和测试能够正常进行。
这个工具算是挺强大可以自己构建数据,完全不用等到开发完了再去测试。
接下来就是flask框架,这是一个开发轻量级框架,其中flask-restful,则可以用来测试可以各种post,get,put,delete,不过里面有些不是那么好理解对于初学者,还贴点代码吧。恩恩还是能看懂的。
的确挺强大的,peewee也在当中用到,他是方便delete后能有能get到不是下一个,当然操作过就知道了。嘻嘻
持续监控也是挺好用的通过jenkins来自动化监听,可以发到邮箱的奥。就这么多了。
持续化集成的要素:
1.统一的代码库
2.自动构建
3.自动测试
4.每个人每天都要向代码库主干提交代码
5.每次代码递交后都会在持续集成服务器上触发一次构建
6.保证快速构建
7.模拟生产环境的自动测试
8.每个人都可以很容易的获取最新可执行的应用程序
9.每个人都清楚正在发生的状况
10.自动化的部署
其中还用到一些工具,postman,newman,这俩个工具是对开发人员请求网站时返回的数据可以清楚的查看。
然后就是Python测试的部分,用到unittest库,这个库可以用来测试用,和java中的测试基本一样。不过这个要对get,和post俩个http协议中的方法要了解点。
接下来就是mockserver了,开发过程中需要依赖一些接口,这些接口要么是搭建环境困难,要么是还没有实现,要么是交互比较复杂。这种情况下,使用mock server来mock这些接口,以便开发和测试能够正常进行。
这个工具算是挺强大可以自己构建数据,完全不用等到开发完了再去测试。
接下来就是flask框架,这是一个开发轻量级框架,其中flask-restful,则可以用来测试可以各种post,get,put,delete,不过里面有些不是那么好理解对于初学者,还贴点代码吧。恩恩还是能看懂的。
<span style="font-size:18px;">#coding: utf-8 from flask import Flask, request from flask.ext.restful import reqparse, abort, Api, Resource app = Flask(__name__) api = Api(app) POSTS = [ {}, {'title': 'first post', 'content': 'first post'}, {'title': 'last post', 'content': 'last post'}, {'title': 'how to learn interface test', 'content': 'how to learn interface test'} ] def abort_if_post_doesnt_exist(post_id): try: POSTS[post_id] except IndexError: abort(404, message="POSTS doesn't exist") parser = reqparse.RequestParser() parser.add_argument('post', type=int) class Post(Resource): # /posts/1 GET def get(self, post_id): post_id = int(post_id) abort_if_post_doesnt_exist(post_id) return POSTS[post_id] # /posts/1 DELETE def delete(self, post_id): post_id = int(post_id) abort_if_post_doesnt_exist(post_id) del POSTS[post_id] return '', 204 # /posts/1 PUT def put(self, post_id): json_data = request.get_json(force=True) post_id = int(post_id) post = {'title': json_data['title'], 'content': json_data['content']} POSTS[post_id] = post return post, 201 class PostList(Resource): # /posts GET def get(self): posts = [] for post in POSTS: if post: new_post = {} new_post['url'] = '/posts/' + str(POSTS.index(post)) new_post['title'] = post['title'] posts.append(new_post) return posts # /posts POST def post(self): json_data = request.get_json(force=True) post_id = len(POSTS) POSTS.append({'title': json_data['title'], 'content': json_data['content']}) return POSTS[post_id], 201 api.add_resource(PostList, '/posts') api.add_resource(Post, '/posts/<post_id>') if __name__ == '__main__': app.run(debug=True)</span>
的确挺强大的,peewee也在当中用到,他是方便delete后能有能get到不是下一个,当然操作过就知道了。嘻嘻
持续监控也是挺好用的通过jenkins来自动化监听,可以发到邮箱的奥。就这么多了。
相关文章推荐
- NFC是什么 Android手机上的NFC都能做什么
- opencv第九章 《图像局部与分割》知识点整理、总结
- iOS学习笔记17-FMDB你好!
- 浅谈 OneAPM 在 express 项目中的实践
- 操作系统进程调度算法
- Android一个自定义验证码的实现
- sed 简明教程
- Linux中Samba详细安装
- 【JAVA设计模式】外观模式(Facade Pattern)
- Android学习记录
- iOS学习笔记15-序列化、偏好设置和归档
- iOS学习笔记16-数据库SQLite
- Linux进程间通信——使用匿名管道
- Unicode 字符编码表|汉字Unicode编码的区间为:0x4E00→0x9FA5(转)
- tomcat(5)servlet容器
- App iCON 尺寸
- 浅谈 OneAPM 在 express 项目中的实践
- nginx增加虚拟服务器
- 剑指Offer--010-二进制中1的个数
- qtreewidget 添加复选按钮