ThinkPHP环境下调用Action的测试工具

0、序言

> 本人开发了一种工具帮助ThinkPHP开发者模拟前端ajax请求,以提高测试效率。

前、后端开发者分工合作是Web项目常见的开发方式。在二者开发进度不一致的情况下,后端开发者经常面临无法通过前端界面验证程序的尴尬;此时往往只能采取模拟请求的方式进行测试,而在ThinkPHP环境下模拟请求会更加麻烦一些。基于过往项目的积累,本人开发一个测试工具帮助开发者模拟HTTP请求调用后端Action服务。本文介绍工具的功能和获取、使用方法,并说明实现过程的一些关键点。

1、功能

基于提高测试效率的目标,添加了一些有用的功能特征。

这个测试工具主要包括以下功能:

  • 按需要的路径模拟ajax请求后端服务,当然普通的http请求也是可以的;
  • 当然可以提交参数;
  • 当然可以显示ajax请求返回的结果,以json方式,努力把json格式化得漂亮一些;
  • 可以依据ThinkPHP的特性自动生成测试路径;
  • 可以保存输入的测试参数,不用重复输入,这个特性可能会比较有用,当然必须有数据库的支持。

2、部署

测试工具本身是基于ThinkPHP开发的应用,依赖ThinkPHP部署。

  • 下载

点击这里下载工具:http://download.csdn.net/detail/zhongping136/8518139

  • 部署应用

下载压缩包解压至ThinkPHP所在目录,即与index.php在同一目录下。压缩包中的test.php是测试应用的入口文件。入口文件的理解可参考ThinkPHP官方手册。如果不喜欢文件名test.php,可更换名字,但需要同时在配置文件中修改TEST_ENTRANCE项。

  • 数据库初始化

在下载的压缩包里有test.sql,请选择合适的数据库执行,创建数据表。脚本默认表的前缀为“tptest_”,可根据需要修改。

创建表后在Test应用中修改配置文件中数据库相关选项:数据库、用户和密码等,详见配置文件(/Test/Common/Conf/config.php)。若创建数据表时修改了表前缀,需注意配置DB_PREFIX选项。

  • 完成

访问http://webroot/test.php,如果Web服务器配置没有问题,就可以看到测试应用的界面了。

3、使用

介绍关键输入项、按钮和可能碰到的坑,例举一个正常流程。

  • 输入项

入口文件:默认填好index.php,如果没有修改默认index.php,这个输入项就不用理睬。

模块:ThinkPHP将应用划分为模块,这里填要模块名,例如Home。

测试action:这里有一个坑,填写必须按“Controller/action”的格式填写,例如“Index/index”。

路径:按ThinkPHP规范的操作访问路径,可以自行填写,当然也可以点击“产生路径”按钮,自动产生需要的路径。

参数:需要提交的参数,包括参数名和参数值两项。可以添加多个参数(点击“添加参数”),不需要的参数也可去除(点击“×”)。

参数合并结果:可以按“act=testu&arg=value”的方式填写,也可点击“合并参数”自动合并。

保存测试数据:默认选中,测试前首先自动保存数据(重复数据自动过滤),若不选中,则不会保存以上选项的输入结果。

Ajax提交:默认以ajax方式提交数据(post方式),若未选中,则按ThinkPHP的URL模式组织完整url,在新页面中访问action。

  • 按钮

选择action:在对话框中选择保存的测试数据,点击action列表自动填写输入项。

产生路径:action所有选项输入后必须输入,生成最新的url路径。

提交测试:路径生成后,输入需要的参数,点击此按钮提交测试,将返回的ajax结果输出到界面,或在新的页面中访问测试路径(非ajax方式)。

  • 操作流程

入口文件填写test.php,模块Home,测试Action填写Index/qryPath;点击产生路径,路径输入框被赋值/test.php/Home/Index/qryPath.html;参数名act,参数值testu,点击合并参数,参数合并结果被赋值;点击提交测试,后台返回结果后展示在执行结果中。

4、实现

有这样一个工具可能有用,不过你能做得更好对吧,所以交流一下吧。

  • Jquery

涉及前端,当然离不开伟大的Jquery,ajax请求、Dom访问、动态添加删除元素,有jquery更轻松。

  • Jmpopups

Jquery.jmpopus,一个简洁的Jquery弹出对话框插件。只有0.5.1版本,没找到后续更新版本,范例使用jquery1.3.2,最新版本的jquery存在兼容问题,偷懒就用了兼容的版本1.3.2。

  • Jsbt

为了让JSON对象显得好看一点,用到了jstb.js,这是一个格式化代码的工具,有点大材小用。

  • 产生路径

ThinkPHP提供的U方法可以根据控制器的具体操作生成访问路径,例如U(‘Home/User/add’)生成Home分组的User模块的add操作地址,不过在测试应用中,入口文件是test.php,生成的路径也是/test.php/Home/User/add.html;实际入口文件为index.php,则需将test.php替换成index.php。

  • 应用打包

工具发布时JS文件和PHP代码共同打包在一起的问题,看看本人的另一篇博客《ThinkPHP环境下JS文件按模块部署》也许会有帮助,网址:

http://blog.csdn.net/zhongping136/article/details/44172229

5、总结

抽空做了一个测试工具,开发过程中可以为后端开发者提供测试上的遍历,简单介绍了这个工具的功能和应用方法,例举了实现过程中用到的第三方代码和注意事项,可以直接使用这个工具,也可以开发一个更完善的工具出来。

原创博客,转载请注明出处:http://blog.csdn.net/zhongping136,谢谢!

时间: 2024-10-12 09:31:40

ThinkPHP环境下调用Action的测试工具的相关文章

AIX环境下文件远程传输复制工具--rsync安装测试

一.RSYNC简介   rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.rsync使用所谓的"rsync算法"来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快.  rsync的基本特点如下:1.可以镜像保存整个目录树和文件系统:2.可以很容易做到保持原来文件的权限.时间.软硬链接等:3.无须特殊权限即可安装:4.优化的流程,文件传输效率高:5.可以使用

java 在centos6.5+eclipse环境下调用opencv实现sift算法

java 在centos6.5+eclipse环境下调用opencv实现sift算法,代码如下: import org.opencv.core.Core; import org.opencv.core.Mat; import org.opencv.core.MatOfKeyPoint; import org.opencv.highgui.Highgui; import org.opencv.features2d.*; public class ExtractSIFT{ public static

推荐一个linux下的web压力测试工具神器webbench

推荐一个linux下的web压力测试工具神器webbench2014-04-30 09:35:29   来源:   评论:0 点击:880 用多了apache的ab工具之后你就会发现ab存在很多问题, 那么怎么办呢, 今天推荐一个神器---webbench webbench最多可以模拟3万个并发连接去测试网站的负载能力,个人感觉要比Apache自带的ab压力测试工具好, 用多了apache的ab工具之后你就会发现ab存在很多问题, 那么怎么办呢, 今天推荐一个神器---webbench    

ThinkPHP环境下JS文件按模块部署

0.序言 一般来说,ThinkPHP的JS文件目录不是太友好:但允许修改参数确定JS的存放路径. 按照ThinkPHP的目录规范,JS文件一般视同静态资源处理,这样JS文件和视图htm文件将部署在两个完全不同的目录,即使二者属于同一应用.模块.通过Thinkphp提供的模板替换功能,配置模块的JS路径参数,可以将JS文件和普通视图文件都放在同一目录,例如Application/Module/View/目录下,这样在按应用.模块部署将变得更加便捷:两种文件所在位置比较接近,开发过程也相对比较方便(

Linux环境下配置真机测试

1 将测试机和开发机通过usb连接 2 通过命令查看usb连接情况 Shell命令: lsusb 会将当前usb连接情况展示出来: Shell代码 : Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 003 Device 013: ID 12d1:1038 Huawei Technolo

Linux下Web网站压力测试工具Webbench

webbench最多可以模拟3万个并发连接去测试网站的负载能力,个人感觉要比Apache自带的ab压力测试工具好用,安装使用也特别方便,并且非常小. 一,环境:linux 二,安装方式:编译安装 具体步骤如下: 1,安装编译工具: [[email protected] install]# yum install ctags wget make apr* autoconf automake gcc gcc-c++ 2,下载该软件包 [[email protected] install]# wget

.Net环境下调用ProtoBuf

一.什么是ProtoBuf protocolbuffer(以下简称PB)是google 的一种数据交换的格式,它独立于语言,独立于平台.它是一种类似于xml.json等类似作用的交互格式.由于它是一种二进制的格式,比使用 xml 进行数据交换快许多. google 提供了多种语言的实现:java.c#.c++.go 和 python,每一种实现都包含了相应语言的编译器以及库文件.可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换. 作为一种效率和兼容性都很优秀的二进制数据传输格式,可以

在 cygwin 的环境下调用 libgdx gdx-tools

想通过执行 shell 脚本的方式,启动 gdx-tools 中提供的工具,如我需要启动 gdx-tools 中 particle-editor,因此参考了 gdx 官方提供的文档,在 cygwin 中执行了命令: java -cp gdx.jar:gdx-natives.jar:gdx-backend-lwjgl.jar:gdx-backend-lwjgl-natives.jar:gdx-tools.jar com.badlogic.gdx.tools.particleeditor.Parti

Redis(1)在windows环境下的安装和测试

初次准备使用redis,一个著名的nosql缓存数据库. 这里是第一天,就简单写一下windows下的安装,遇到的一些问题,然后简单的使用和测试,之后会在代码中使用和测试. 之后还会在生产环境中进行测试,linux下进行安装测试,对于缓存集群的话,暂时还没有准备使用,如果以后遇到之后再做说明. 首先是下载:很多网上百度出来的都说windows版本的下载地址在github上面是https://github.com/MSOpenTech/redis 但是对于很多新手(我也是其中中招的),github