接着上篇文章继续代码的讲解,上次的代码中引入了require.php,这个玩意是干啥的呢,今天我们就来说下

require.php内容如下

<?php

//所需要的所有引入文件都放这里,方便统一管理,以后的php文件里只需要引入这一个就ok了

//请求相关

require_once("../commons/transfer.php");

//读取配置文件相关

require_once("../src/read_config.php");

//测试用例类相关

require_once("../testcases/lhl_test.php");

?>

这个不是必须的,你也可以选择在需要的地方引入需要的文件,我们这里之所以抽离成为一个就是为了方便维护,以后万一有变动只需维护这一个php文件即可,其余的都不需要去关心的。

transfer.php内容如下,主要就是把get和post请求封装为class,以后有其他的方法你也可以在此封装。具体的内容在之前的文章中已经讲解过,此处不再重复。

<?php

class Transfer

{

public static function get($url, $extraheader = array())

{

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_HTTPHEADER, $extraheader);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 获取数据返回

$output = curl_exec($ch);

curl_close($ch);

return $output;

}

public static function post($url, $post_params, $extraheader = array())

{

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_POST, true);

curl_setopt($ch, CURLOPT_POSTFIELDS, $post_params );

curl_setopt($ch, CURLOPT_HTTPHEADER, $extraheader);

//如果是https的,可能需要加上下面的两行

#curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

#curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 获取数据返回

$output = curl_exec($ch);

curl_close($ch);

return $output;

}

}

?>

read_config.php内容如下,主要是完成读取host配置文件,这个也是可选的,你也可以写在代码里,我们提取出来主要是为了方便,比如你在测试环境用的一个host,到了线上是另外一个host,那么我们只需要维护对应的文件即可。

<?php

class ReadConfig

{

var $doc;

public function __construct()

{

//load配置文件

$this->doc=new DOMDocument();

$this->doc->load("../src/config.xml");

}

public function get_host($type)

{

//读取配置文件,选择host

foreach($this->doc->getElementsByTagName("host") as $item)

{

$list = $item->getElementsByTagName( $type );

foreach ( $list as $list1 )

{

$value = $list1->nodeValue;

break;

}

}

return $value;

}

}

?>

读取的host文件为xml格式,内容如下

<?xml version="1.0" encoding="UTF-8"?>

<Setting>

<host>

<online>http://v.juhe.cn/laohuangli/d</online>

<host1>http://127.0.0.1</host1>

</host>

</Setting>

资料获取


后续涉及到的代码可以通过如下方式获取(代码会逐步发放,不要着急):点击链接加入群 522720170(共享里有):https://jq.qq.com/?_wv=1027&k=5C08ATe

转载于:https://blog.51cto.com/xqtesting/1983345

接口自动化测试之PHPUnit-框架代码编写2相关推荐

  1. Jmeter+Jenkins+Ant 接口自动化持续集成框架

    前言: 首先简单说下jmeter+jenkins+ant接口自动化持续集成框架的工作原理,以便于更好的理解后面的各项配置: 首先,jenkins通过SVN获取jmeter最新的脚本: 然后,jenki ...

  2. PC微信hook基础框架代码编写-->获取微信日志

    PC微信hook基础框架代码编写-->获取微信日志 一. 封装微信hook框架和一些基本功能 1. 新建一个dll工程 2. 新建一个CHook类 并编写对应的函数 3. 新建一个CTools工 ...

  3. 【30天学会接口自动化测试】接口自动化测试之框架设计(五)

    整理了一些软件测试方面的资料.面试资料(接口自动化.web自动化.app自动化.性能安全.测试开发等),有需要的小伙伴可以文末加入我的学习交流qun,无套路自行领取~ 如果有100个测试用例,重复的去 ...

  4. 接口自动化测试之框架模型搭建

    一.前言 小伙伴们大家好呀,今天笔者给大家带来了一篇关于python接口自动化测试的文章,这篇文章主要讲解Python接口自动化测试框架模型的搭建,主要介绍如何设计框架,以及基础的框架运行等,话不多说 ...

  5. jemeter python接口自动化测试平台_python接口自动化测试之request

    之前小编写过Rest-assuert接口测试框架,它是基于java的,那么怎么轻轻松松玩转python接口自动化测试呢?今天小编就写写如何使用python Request进行接口自动测试. 学习任何一 ...

  6. 接口自动化测试之Mock

    一.Mock实现原理和实现机制 在某些时候,后端在开发接口的时候,处理逻辑非常复杂,在测试的时候,后端在未完成接口的情况下该如何去测试呢? 我们需要测试,但是有些请求又需要修改一下参数,或者改变一下r ...

  7. python教学视频p_python接口自动化28requestshtml爬虫框架

    前言 requests库的好,只有用过的人才知道,最近这个库的作者又出了一个好用的爬虫框架requests-html.之前解析html页面用过了lxml和bs4, requests-html集成了一些 ...

  8. Web自动化_APP自动化_接口自动化_测试框架汇总

    1 luckyframe 码云地址 https://gitee.com/seagull1985/LuckyFrameWeb https://gitee.com/seagull1985/LuckyFra ...

  9. 接口自动化集成TestNG框架

    目录 1. 接口概念 2. HTTP接口 3. TestNG介绍 4. TestNG注解 4.1 dependsOnMethods标签 4.2 alwaysRun标签 4.2.1 alwaysRun ...

最新文章

  1. boost::log模块记录多个线程的示例
  2. oracle 处理过程,Oracle SQL语句处理过程(转载)
  3. C语言数字3转变字符 3 程序,大学c语言知识点总结
  4. MyEclipse 8.0注冊码+原版下载_Java开发软件
  5. 富文本编辑器CKEditor 5开发环境搭建
  6. oracle in查询 一直等待,学习笔记:Oracle awr 分析解决inactive transaction branch等待事件...
  7. 呼叫转移XCAP log的查看
  8. LoadRunner压力测试:测试报告结果分析
  9. 垃圾焚烧发电厂如何推行5S/6S/7S管理
  10. 浙大陈越老师数据结构 02-线性结构4 Pop Sequence详解
  11. Autovue v21.0.2的新功能
  12. 将数字转换成大写金额
  13. 一些android论坛
  14. 谈一谈Restful接口设计风格
  15. AWS的KVS相关介绍
  16. iOS下载不了迅雷怎么办
  17. web实现QQ第三方登录
  18. hive on tez 执行任务报错
  19. java pgp加密_基于Java Bouncy Castle的PGP加密解密示例
  20. 视频配音软件哪个好用?这篇文章来告诉你

热门文章

  1. 命令行实现SMTP和IMAP
  2. View.onMeasured的默认实现 (onMeasure必须调setMeasuredDimension)
  3. 消息队列—简介以及使用场景
  4. List类系列(一):list中各元素出现的次数
  5. 使用FastJson解析时有关内部类的两个问题
  6. 剖析Fragment的Pause生命周期全过程
  7. GridSearchCV和RandomizedSearchCV调参
  8. suse系统关闭防火墙
  9. 【原创】分布式之redis复习精讲
  10. 关于字符编码,你所需要知道的(ASCII,Unicode,Utf-8,GB2312…)