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

简介:

接着上篇文章继续代码的讲解,上次的代码中引入了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










本文转自 小强测试帮 51CTO博客,原文链接:http://blog.51cto.com/xqtesting/1983345,如需转载请自行联系原作者
目录
相关文章
|
3月前
|
设计模式 前端开发 测试技术
告别脆弱:构建稳定UI自动化测试的3个核心策略
告别脆弱:构建稳定UI自动化测试的3个核心策略
471 113
|
4月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
443 1
|
4月前
|
存储 关系型数据库 测试技术
玩转n8n测试自动化:核心节点详解与测试实战指南
n8n中节点是自动化测试的核心,涵盖触发器、数据操作、逻辑控制和工具节点。通过组合节点,测试工程师可构建高效、智能的测试流程,提升测试自动化能力。
|
5月前
|
Web App开发 人工智能 JavaScript
主流自动化测试框架的技术解析与实战指南
本内容深入解析主流测试框架Playwright、Selenium与Cypress的核心架构与适用场景,对比其在SPA测试、CI/CD、跨浏览器兼容性等方面的表现。同时探讨Playwright在AI增强测试、录制回放、企业部署等领域的实战优势,以及Selenium在老旧系统和IE兼容性中的坚守场景。结合六大典型场景,提供技术选型决策指南,并展望AI赋能下的未来测试体系。
|
5月前
|
算法 IDE Java
Java 项目实战之实际代码实现与测试调试全过程详解
本文详细讲解了Java项目的实战开发流程,涵盖项目创建、代码实现(如计算器与汉诺塔问题)、单元测试(使用JUnit)及调试技巧(如断点调试与异常排查),帮助开发者掌握从编码到测试调试的完整技能,提升Java开发实战能力。
574 0
|
4月前
|
机器学习/深度学习 人工智能 测试技术
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
EdgeMark是一个面向嵌入式AI的自动化部署与基准测试系统,支持TensorFlow Lite Micro、Edge Impulse等主流工具,通过模块化架构实现模型生成、优化、转换与部署全流程自动化,并提供跨平台性能对比,助力开发者在资源受限设备上高效选择与部署AI模型。
463 9
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
|
3月前
|
安全 Java 测试技术
《深入理解Spring》单元测试——高质量代码的守护神
Spring测试框架提供全面的单元与集成测试支持,通过`@SpringBootTest`、`@WebMvcTest`等注解实现分层测试,结合Mockito、Testcontainers和Jacoco,保障代码质量,提升开发效率与系统稳定性。
|
3月前
|
数据采集 人工智能 自然语言处理
Playwright MCP 浏览器自动化框架全面解析
Playwright MCP是微软推出的开源项目,结合Playwright与MCP协议,让AI通过结构化数据直接操作浏览器。告别传统视觉识别,实现高效、精准的网页自动化,广泛应用于测试、爬虫、办公自动化等场景,大幅提升效率与可靠性。

热门文章

最新文章