您的位置:首页 > 其它

自动化测试总结

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,不过里面有些不是那么好理解对于初学者,还贴点代码吧。恩恩还是能看懂的。

<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来自动化监听,可以发到邮箱的奥。就这么多了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: