接口测试入门(4)--接口自动化测试框架 / list和map用法 / 随机选取新闻 (随机数生成) / 接口相关id映射
一.接口自动化测试框架
为了更好的组织测试方法,测试用例并且持续集成,我们选择了 java+testNG(测试用例组织)+gitlab(代码版本管理)+Jenkins(持续集成工具) 作为一整套的自动化测试框架,和UI自动化测试框架一样。
整个项目分为三大模块:
1.config:设置全局的配置文件,以.properties结尾,例如:常用的host,账号,邮件发送
2.src:通用的方法+各个用例单独调用的方法+testcase 的组织(运行哪些方法)
3.testcase:其中包括 接口地址配置文件+testNG.xml文件(组织2中测试用例的运行,如:执行顺序,运行次数,线程设置等)
二. 相关Java知识
1.list和map的用法
list的用法:(用于两个场景:1.json解析,输出某一列的值 2.获取list,随机取出其中的值)
获得集合内元素个数:list.size(); 默认添加:list.add(e); 指定下标添加(添加后下标后的元素向后挪一位):list.add(index,e) 取出元素:list.get(index); 清空集合:list.clear();
判断集合中是否存在某个元素(存在返回true,不存在返回false):list.contains(e); 获得元素下标: 元素存在则返回找到的第一个元素的下标,不存在则返回-1:list.indexOf(e);
判断集合是否为空(空则返回true,非空则返回false):list.isEmpty(); 将集合转换为数组: 默认类型:list.toArray(); map的用法:(常用于 1.post参数设置 2.配置文件的id映射 (properties类实现了map接口)如:url接口地址+map映射id
1.声明一个Map : Map map = new HashMap();
2 .向map中放值 ,注意: map是key-value的形式存放的,如: map.put("sa","dd");
3 .从map中取值 : String str = map.get("sa").toString
4 .遍历一个map,从中取得key和value :
Map m= new HashMap();
for(Object obj : map.keySet()){
Object value = map.get(obj );
}
2.随机选取某一个值,(先生成一个随机数,然后进行将随机数当做下标)
list.add("笨蛋~");
Random rd=new Random();
int random=rd.nextInt(list.size());//生成一个随机数,范围在size中,如果是数组,则是array.length()
String comment = list.get(random);
3.读取接口配置文件properties(加载接口地址,加载账号和url地址)/随机获取的id如何映射到map中
这里用到特别好用的 java.util.Properties类 ,使用load方法就可以产生一个内存map,小样例可以详细可以见 http://www.cnblogs.com/lingiu/p/3468464.html
public static String propertiesPath = "api_config/";
classLoader = getClass().getClassLoader(); //先加载class路径
File caseFile = new File(getClassLoaderPath() + casePath); //拼接测试用例路径
File[] caseFiles = caseFile.listFiles();
for (File caseproperties : caseFiles) {
if (caseproperties.isFile()) {
Properties pro = new Properties();
try {
pro.load(new FileInputStream(caseproperties));
如何使随机挑选的id映射到加载的接口路径中?
思路:创建一个全局变量,方法1中给变量赋值,方法2中的使用map,使用this方法赋值给接口url的参数 ,如: urlMap.put("postId",this.postId);
创建一个共通的方法,参数中{}中的参数信息,参数来自于配置文件和Map。
如何使用框架组织一个用例?(以评论某一文章,收藏为例)
1.测试方法(Java类):
评论:随机选出一篇文章>获取评论数>随机评论>获取评论数(校验),获取评论内容(校验)
收藏:随机选出一篇文章>获取收藏状态>收藏/取消收藏
2.测试case(测试用例组织)
结合1中的方法,几个方法组成一个case
3.testNg中:
接口路径配置文件+testNG(xml文件,调整一下方法执行顺序)
接口测试入门(4)--接口自动化测试框架 / list和map用法 / 随机选取新闻 (随机数生成) / 接口相关id映射的更多相关文章
- 接口自动化 基于python实现的http+json协议接口自动化测试框架源码(实用改进版)
基于python实现的http+json协议接口自动化测试框架(实用改进版) by:授客 QQ:1033553122 欢迎加入软件性能测试交流QQ群:7156436 目录 1. ...
- Python 基于python实现的http+json协议接口自动化测试框架源码(实用改进版)
目录 1. 写在前面 2. 开发环境 3. 大致流程 4. 框架简介 5. 运行结果展示 6. 文件与配置 7. 测试接口实例 n ...
- 【转】robot framework + python实现http接口自动化测试框架
前言 下周即将展开一个http接口测试的需求,刚刚完成的java类接口测试工作中,由于之前犯懒,没有提前搭建好自动化回归测试框架,以至于后期rd每修改一个bug,经常导致之前没有问题的case又产生了 ...
- 【python3+request】python3+requests接口自动化测试框架实例详解教程
转自:https://my.oschina.net/u/3041656/blog/820023 [python3+request]python3+requests接口自动化测试框架实例详解教程 前段时 ...
- robot framework + python实现http接口自动化测试框架
https://www.jianshu.com/p/6d1e8cb90e7d 前言 下周即将展开一个http接口测试的需求,刚刚完成的java类接口测试工作中,由于之前犯懒,没有提前搭建好自动化回归测 ...
- python+requests接口自动化测试框架实例详解
python+requests接口自动化测试框架实例详解 转自https://my.oschina.net/u/3041656/blog/820023 摘要: python + requests实 ...
- Python接口自动化测试框架实战 从设计到开发
第1章 课程介绍(不要错过)本章主要讲解课程的详细安排.课程学习要求.课程面向用户等,让大家很直观的对课程有整体认知! 第2章 接口测试工具Fiddler的运用本章重点讲解如何抓app\web的htt ...
- python+request+HTMLTestRunner+unittest接口自动化测试框架
转自https://my.oschina.net/u/3041656/blog/820023 正在调研使用python进行自动化测试,在网上发现一篇比较好的博文,作者使用的是python3,但目前自己 ...
- 基于Python接口自动化测试框架+数据与代码分离(进阶篇)附源码
引言 在上一篇<基于Python接口自动化测试框架(初级篇)附源码>讲过了接口自动化测试框架的搭建,最核心的模块功能就是测试数据库初始化,再来看看之前的框架结构: 可以看出testcase ...
随机推荐
- noip普及组2004 火星人
火星人 描述 人类终于登上了火星的土地并且见到了神秘的火星人.人类和火星人都无法理解对方的语言,但是我们的科学家发明了一种用数字交流的方法.这种交流方法是这样的,首先,火星人把一个非常大的数字告诉人类 ...
- 自定义EasyUI的datetimebox控件日期时间的显示格式(转)
工作中遇到的问题,在此记录一下. 需求:前台页面使用了EasyUI框架,在某一个html页面中要求datetimebox显示格式为年月日和小时,如图所示: 尝试过两种方法,分别如下: 第一种方法: d ...
- How to quickly become effective when joining a new company
How to quickly become effective when joining a new company The other day my colleague Richard asked ...
- ORACLE概要文件
oracle系统为了合理分配和使用系统的资源提出了概要文件的概念.所谓概要文件,就是一份描述如何使用系统的资源(主要是CPU资源)的配置文件.将概要文件赋予某个数据库用户,在用户连接并访问数据库服务器 ...
- OKCoin期货现货API[Python3版]
OKCoin 期货 现货 API [Python版] 一.HttpMD5Util.py,基础类,包括MD5签名,HTTP Post及HTTP Get方法 #!/usr/bin/python # -*- ...
- Struts2流程分析与工具配置
1. 运行流程 请求 -- StrutsPrepareAndExecuteFilter 核心控制器 -– Interceptors 拦截器(实现代码功能 ) -– Action 的execuute - ...
- javascript基础进阶——执行环境及作用域链
概念 执行环境 执行环境定义了变量或函数有权访问的其他函数,决定了他们各自的行为.每个执行环境都有一个与之关联的变量对象. 变量对象 环境中定义的所有变量和函数都保存在这个对象中. 全局执行环境 全局 ...
- 浅析HTTP协议的请求报文和响应报文
1.HTTP协议与报文简介 HTTP(hypertext transport protocol),即超文本传输协议.这个协议详细规定了浏览器和万维网服务器之间互相通信的规则. 而客户端与服务端通信时 ...
- 用JS制作一个信息管理平台
首先,介绍一些需要用到的基本知识. [JSON] JSON是数据交互中,最常用的一种数据格式. 由于各种语言的语法都不相同,在传递数据时,可以将自己语言中的数组.对象等转换为JSON字符串. 传递之后 ...
- chrome开发工具指南(九)
检查和管理存储.数据库与缓存 查看和修改本地存储与会话存储. 检查和修改 IndexedDB 数据库. 对 Web SQL 数据库执行语句. 查看应用缓存和服务工作线程缓存. 点击一次按钮即可清除所有 ...