接口自动化测试项目的一些知识整理

分享一下做过的接口测试的项目知识,简单的整理了下,以后有时间会把其他的也整理下,大家有好的建议或者疑问的可以直接回复哦。
里面的设计和具体的实现都存在不同程度的缺陷。以下都是实现完成并运用于项目中的。

Python Web Restful API 接口测试项目知识整理归纳

项目工具选择

使用工具: Robot Framework + Jenkins + Gitlab + Jira
Robot Framework: 关键字驱动自动化测试框架
Python Unit Test: Python内置的单元测试框架
Gitlab : 版本控制软件
Jenkins: 持续集成软件
Jira: 缺陷管理工具,储存测试用例和bug

自动化测试的工作流水线:

1.使用Robot Framework + Requests
Jenkins run job -> Sync latest code from Git lab-> Run automation(Robot Framework) -> Update case status in Jira(Use Jira rest API) -> show report on Jenkins

Details:
(1)Jenkins配置:
新建Job , 绑定Gitlab 项目地址,设置运行模式并选择run .sh 文件, 如果是用robot, .sh文件export 环境变量后,pybot suite1 suite2…..
(2)Gitlab: 新建项目,本地安装Git Client
(3)Jira 相关配置:
需要确认项目的ProjectId和Test Cycle, Test Cycle可以由API自动创建
自动化工程工程中对Jira的相关操作,必要的参数需要从Jira rest api中获取

(4)Robot Framework 搭建自动化测试工程
测试用例管理: Feature
-Test Suite
-Test Case
封装自定义关键字:Module名字必须和Class相同, 关键字作为每一个方法存在,确认方法所需的返回值和输入的参数。
配置并使用自定义的Library,再global.txt中添加新增的Library地址。

与Jira整合: 编写更新测试用例状态的keyword,在每个case中的tear down中使用,执行每条case更新结果。
与Jenkins整合: Jenkins需要安装robot插件并配置在“增加构建后步骤”选择“Publish Robot Framework test results”

2.使用Python Unit Test + HTMLTestRunnner

1-3 与上述几乎相同
Python Unit Test 搭建自动化测试框架工程
测试用例管理

Feature —– Package
-Test Suite —– Module
-Test Case List —– Class
-Test Case —– Method

参数模块
使用Json定义参数数据模板或使用excel存贮参数,选择不同实现方式不同
{
“display_name”: {
“method”: “randomString”,
“arguments”: {
“supported_string_list”: [
“letters”,
“digits”,
“punctuation”
],
“min_length”: “4”,
“max_length”: “30”}
},
“email”: {
“method”: “randomEmail”,
“arguments”: {
}

“password”: {
“method”: “randomString”,
“arguments”: {
“supported_string_list”: [
“letters”,
“digits”,
“punctuation”
],
“min_length”: “6”,
“max_length”: “30”}
},
“permissions”: [],
“roles”: {
“method”: “randomParamsList”,
“arguments”: {
“parameters_list”: “roles”,
“accept_empty”: “True”}
}
}

Case Suite和Jira中case关联方式, 实现方式有很多种,以下列举几个示例:
1.Unit中method name和Jira case关联 testOS666DemoCase1
2.建立case和method映射关系 {“OS-666”:”testMethodName”}

运行方式:
根据不同需求筛选case组成case suite,用 HTMLTestRunner.HTMLTestRunner运行测试用例套件。