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,谢谢!