一.接口自动化测试框架

为了更好的组织测试方法,测试用例并且持续集成,我们选择了  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映射的更多相关文章

  1. 接口自动化 基于python实现的http+json协议接口自动化测试框架源码(实用改进版)

    基于python实现的http+json协议接口自动化测试框架(实用改进版)   by:授客 QQ:1033553122 欢迎加入软件性能测试交流QQ群:7156436     目录 1.      ...

  2. Python 基于python实现的http+json协议接口自动化测试框架源码(实用改进版)

    目录 1.      写在前面 2.      开发环境 3.      大致流程 4.      框架简介 5.      运行结果展示 6.      文件与配置 7.      测试接口实例 n ...

  3. 【转】robot framework + python实现http接口自动化测试框架

    前言 下周即将展开一个http接口测试的需求,刚刚完成的java类接口测试工作中,由于之前犯懒,没有提前搭建好自动化回归测试框架,以至于后期rd每修改一个bug,经常导致之前没有问题的case又产生了 ...

  4. 【python3+request】python3+requests接口自动化测试框架实例详解教程

    转自:https://my.oschina.net/u/3041656/blog/820023 [python3+request]python3+requests接口自动化测试框架实例详解教程 前段时 ...

  5. robot framework + python实现http接口自动化测试框架

    https://www.jianshu.com/p/6d1e8cb90e7d 前言 下周即将展开一个http接口测试的需求,刚刚完成的java类接口测试工作中,由于之前犯懒,没有提前搭建好自动化回归测 ...

  6. python+requests接口自动化测试框架实例详解

    python+requests接口自动化测试框架实例详解   转自https://my.oschina.net/u/3041656/blog/820023 摘要: python + requests实 ...

  7. Python接口自动化测试框架实战 从设计到开发

    第1章 课程介绍(不要错过)本章主要讲解课程的详细安排.课程学习要求.课程面向用户等,让大家很直观的对课程有整体认知! 第2章 接口测试工具Fiddler的运用本章重点讲解如何抓app\web的htt ...

  8. python+request+HTMLTestRunner+unittest接口自动化测试框架

    转自https://my.oschina.net/u/3041656/blog/820023 正在调研使用python进行自动化测试,在网上发现一篇比较好的博文,作者使用的是python3,但目前自己 ...

  9. 基于Python接口自动化测试框架+数据与代码分离(进阶篇)附源码

    引言 在上一篇<基于Python接口自动化测试框架(初级篇)附源码>讲过了接口自动化测试框架的搭建,最核心的模块功能就是测试数据库初始化,再来看看之前的框架结构: 可以看出testcase ...

随机推荐

  1. Session的引入以及Cookie的不足

    一.为什么引入session > Cookie实际上就是一个头. > 服务器会创建Cookie,并且将Cookie以一个响应头的形式发送给浏览器        > 浏览器收到Cook ...

  2. [日推荐] 『闲聊助手』人工智能小程序,仅此一款!-极乐商店store.dreawer.com

    肾phone的siri有用过吗?小编无聊时就撩一下她!但有个问题就是要是没有肾phone在身边怎么撩???现在有伙伴@wx_Volcano_Li76 开发一款小程序,可以等同于siri,想什么时候撩就 ...

  3. 面试 | 商汤科技面试经历之Promise红绿灯的实现

    说在前面 说实话,刚开始在听到这个面试题的实话,我是诧异的,红绿灯?这不是单片机.FPGA.F28335.PLC的实验吗?! 而且还要用Promise去写,当时我确实没思路,只好硬着头皮去写,下来再r ...

  4. 安装oracle后登录时出现 ERROR: ORA-01031 insufficient privileges

    运行环境:在自己笔记本电脑(win10)上安装测试 操作系统版本:64位win8.1 Oracle版本:64位 oracle 11g 安装oracle 成功后//以管理员身份登录oracle 在cmd ...

  5. 【RN6752】模拟高清AHD芯片或成为车机新标配

    由于目前车机方案倒车后视目前大多为480P标配,画面噪点多有锯齿成像效果差,成为行业的难言之痛.2012年底,浙江大华宣布发布一项具备完全自主知识产权的安防行业高清视频传输规范--HDCVI--Hig ...

  6. lucene&solr-day1

        全文检索课程 Lucene&Solr(1) 1.   计划 第一天:Lucene的基础知识 1.案例分析:什么是全文检索,如何实现全文检索 2.Lucene实现全文检索的流程 a)   ...

  7. 花生壳DDNS为何不支持LetsEncrypt申请

    Inspired by Let's Encrypt Community , thx to sahsanu, jsha, and orzorc. 开端 Lets Encrypt 是一款免费的网站 SSL ...

  8. 阿里云Maven地址

    GFW 呵呵呵 下载几个jar要几个小时.....伤透了 直接替换国内阿里云的maven镜像地址  速度嗖嗖嗖的.... 配置 修改maven根目录下的conf文件夹中的setting.xml文件,内 ...

  9. yum的初步了解与使用

    什么是yum Yum(Yellow dog Updater,Modified)是一个基于RPM包管理的字符前端软件包管理器.能够从指定的服务器自动下载RPM包并且安装,可解决软件包相关依赖性,并且一次 ...

  10. NHibernate教程(8)--巧用组件

    本节内容 引入 方案1:直接添加 方案2:巧用组件 实例分析 结语 引入 通过前面7篇的学习,有点乏味了~~~这篇来学习一个技巧,大家一起想想如果我要在Customer类中实现一个Fullname属性 ...