在web开发中,后端跨系统访问,在没有客户端的时候,如何测试服务端可用
你好,近期在下刚刚做了一个类似的项目。
自己为A系统的话,我们需要调用B系统的接口,如果是在前端调用的话,不免存在跨域的问题,如果在B端解决跨域,又会存在安全的风险。所以,最好解决的方法就是我们在后端通过httpclient等工具类来模拟一个浏览器来进行接口的调用,这时,调用B端的接口进行调试不会像我们自己的项目那样方便了。
接下来我们可以先通过类似于postman这类工具来测试B端服务器的接口。
如下图:
get、post、put、delete、head等常用的请求方式。
通过B端 ip:端口/接口 + 请求方式 来测试接口的返回值的>操纵/p>
我们来模拟一个get携参的请求,下面是json的返回数据
就简单的模拟一个,其他的操作也是类似的。
这样楼主就可以判断B系统的接口等是否可用或者正确等等
最后,感谢楼主的邀请。
BAT的java工程师来回答,这个就是我们写完代码,常见的情况。
我们使用的是前后端分离式开发,因此我们后端开发完除非把前端编译好的文件要过来,否则是完全没有界面可言的,这种时候我常用的自测方式有两种。
自创数据main函数自测
这个是最简单最基础的自测,写完一个功能之后,如果这个功能并不涉及bean等等操作,可以直接自己写一个main函数,然后模拟数据调用这个待测函数,看结果是否符合预期。举个例子,我曾经写过一个json字符串转换的工具类,里面包括从json字符串中提取integer,string,boolean等对象。对于这种工具类的测试,只需要自己创建一些json和非json字符串,然后在main函数中把字符串传给工具类的函数,看看执行结果是否符合预期就好了。
但是有时候,我们会写一些很复杂的功能,简单的模拟数据已经不够了,我们可能需要检查是否能够正常读写数据库,redis,elasticsearch等等其他服务,这个时候,就需要用到下面的方法了。
Postman
这个是一款功能强大的能进行发送http请求的chrome插件。说一句我踩过的坑,安装好之后虽然postman以独立的形式存在电脑中,但是如果chrome崩了,postman也是不能用了的,这二者的绑定关系时刻记心中。
这个插件能够发送get,post,put,delete,head等15种请求(全部请求类型见下图)。而且支持常用url的导入和导出,建组,这对于需要进行回归测试的开发人员来说是非常有意义的。
以我自己建的组为例,我开发完代码后,会在本地IDE里起一个服务,url是以localhost为ip的服务,这就是最基础的自测,因此我把这类url存储为【本地环境】。
之后还会把服务上传到测试环境,测试服务在测试环境是否有问题,因此这类url存储为【测试环境】;除此之外,还有【线上环境】,用来测试上线后是否服务正常。
说回【本地环境】,当我们写完代码,main函数已经不能帮我们自测的时候,就可以把要测试的服务包成一个接口,通过controller开放出来,然后在本地IDE中启动这个web项目,通过postman来调这个接口,查看功能是否执行的符合预期。比如我就封装了一个test/hello的接口,所有需要我自测的功能,我都放到这个接口里测过没问题才会commit到git本地仓库。
以上是后端工程师在没有前端界面的时候自测的方式(之二),如果对你有所帮助,欢迎点赞留言。
我是苏苏思量,来自BAT的java开发工程师,欢迎关注我,每日分享科技类见闻,与我共同进步。
用web做的登录界面怎么连接数据库
1.建立一个web项目2.把数据库驱动复制到lib目录下。数据库驱动有:mysql,sqlserver,oracle等是什么样类型的数据导入相应驱动。
3.编写一个连接数据库的工具类,获取一个连接。下面以mysql数据库为例。核心代码:
publicclassDataUtils{/***从数据中获取一个连接*@return*/publicstaticConnectiongetConn(){Connectionconn=null;try{Class.forName("com.mysql.jdbc.Driver").newInstance();//表为test,用户名root,密码admin。conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","admin");}catch(Exceptione){e.printStackTrace();}returnconn;}
}4.获取到与相应数据库的连接后,就可以做增删改查操作了。记得做完操作后,关闭连接,释放资源。
如何用web访问sql数据库
sqlite是文件型数据库,所以它本身不支持网络访问。
折中的办法有两个1是将sqlite数据库上传至vps/云主机,自行写一个介于你软件和数据库的中间件,由它负责获取请求并传回对应的数据。至于连接方式是http还是直接的socket这取决于你。
优点:对软件的修改程度最小缺点:你需要自行设计中间件面对大量链接时的资源管理2是租用一个在线mysql服务,将目前sqlite的数据“同步”到mysql数据库,再更新你的软件的数据库连接方式即可。
优点:不需要自己处理数据库连接的事情缺点:对软件需要做较大改动个人建议第二种