自动化测试总结

     最近学了点持续集成,自动化测试,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,不过里面有些不是那么好理解对于初学者,还贴点代码吧。恩恩还是能看懂的。

#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/')


if __name__ == '__main__':
    app.run(debug=True)

的确挺强大的,peewee也在当中用到,他是方便delete后能有能get到不是下一个,当然操作过就知道了。嘻嘻

持续监控也是挺好用的通过jenkins来自动化监听,可以发到邮箱的奥。就这么多了。

你可能感兴趣的:(python,自动化测试)