目录
前言:
设计目标
项目说明
目录结构
配置 jenkins
1.安装插件
2.配置项目
前言:
Jenkins+Robot是一种常见的接口自动化测试方案,可以实现自动化的接口测试和持续集成。Jenkins是一个流行的持续集成工具,而Robot Framework是一个开源的自动化测试框架,专注于易用性和可扩展性。
设计目标
- 每次通过手动回归接口测试用例比较麻烦,需要能比较便捷的自动回归接口减轻工作量
- 同时因人力不够能力有限,自己单独开发工具比较困难,需要简单易上手
- 每次在自动化跑完以后希望能快速的看到整体结果,以及有较好的展示
项目说明
目前的项目结构是采用Robot+Jenkins+Git
,通过 Python 进行拓展。
- 项目通过 pymysql 进行数据库操作
def db_query(self,db_name,sql,num=1,charset="utf8"): """查询数据库 num若为0,则获取所有结果 """ conn= pymysql.connect( host=self.config.cfg_read("mysql","host"), port=int(self.config.cfg_read("mysql","port")), user=self.config.cfg_read("mysql","user"), passwd=self.config.cfg_read("mysql","passwd"), db =db_name, charset=charset ) cur = conn.cursor() try: cur.execute(sql) if num==0: res=cur.fetchall() return res else: res=cur.fetchmany(num) return res # except MySQLdb.Error,e: # print "Mysql Error %d: %s" % (e.args[0], e.args[1]) except Exception,e: print e finally: cur.close() conn.close()
- 同时用 json schema 进行 json 的校验大概代码如下
def json_schema_validation(self,resp,schemaPath): """验证json与schema是否一致 :resp:json返回串 :schemaPath:schema文件路径 """ try: schemaPath=os.path.abspath(schemaPath) if not os.path.exists(schemaPath): raise IOError("schema file path is not exists!") schema=open(schemaPath).read() print jsonschema.validate(resp,json.loads(schema)) return jsonschema.Draft3Validator(json.loads(schema)).is_valid(resp) except jsonschema.ValidationError as e: print e.message return False except jsonschema.SchemaError as e: print e.message return False
- 使用了 python 的 requests 模块进行请求
- 使用自定义的一些解析方法去解析 json
- 因为 robot 产生的结果 html 结果不够直观,所以自己根据产生的结果 xml 文件解析生成统计文件发送给部门。
目录结构
- API 存放项目的接口定义文件
- Test 存放项目的接口测试用例
- Flow 存放项目的场景测试用例
- Schema 存放项目的 json schema 模板文件
- Tools 存放项目用到的资源文件
- apiUtil 存放与 api 请求相关的关键字
- assertUtil 存放与断言相关的关键字
- 包括解析 json 的关键字
- 同时还有对比数据库结果与 json 指定值的对比,支持多个对比
- 支持正则匹配 json
- dbUtil 存放与数据库相关的关键字
- Files 存放调用接口需要用到的文件
- Report 存放测试产生的报告
配置 jenkins
每次手动执行 robot 比较麻烦,利用 jenkins 每次从 git 上拉取最新的测试用例,保证项目的持续集成以及自动回归
1.安装插件
- 点击系统管理->插件管理
- 点击【可选插件】,在过滤器中输入 robot 可以进行搜索
- 安装插件
2.配置项目
- 增加新自由项目
- 添加源码管理,因为我们仓库是 git,所以选择 git
- 可以设置构建触发器,比如可以设置每天跑一次
0 0 * * *
- 在项目中选择 execute window batch command 填入运行的命令,如用 pybot.bat -I [tagname] [用例项目路径]
- 增加构建后步骤,加入 Publish Robot Framework test results
- 设置测试通过目标
- 通过 ExtendedEmailPublisher 插件增加邮件模版
- 构建就可以看到结果了
作为一位过来人也是希望大家少走一些弯路
在这里我给大家分享一些自动化测试前进之路的必须品,希望能对你带来帮助。
(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等)
相信能使你更好的进步!
点击下方小卡片