chrome 浏览器 保存 debug 日志到 本地文件

在 Chrome 里使用 WebRTC ,因为调试的缘故,要打开日志,记录下过程。

如何给 Chrome 添加命令行参数

两种方式,一种是修改快捷方式,类似下面这样:

你可以把原来的快捷方式复制一份来修改。

另一种方式是命令行启动 Chrome ,类似下面:

 

layui ajax 使用注意事项

//监听提交
form.on(‘submit(demo1)’, function(data){
// layer.alert(JSON.stringify(data.field), {
// title: ‘最终的提交信息’
// })
$ = layui.jquery;
//
$.ajax({
url:’dealdata.php’,
type:’post’,
data:data.field,
dataType:”JSON”,
success:function(data){
if(data.Res){
layer.alert(“提交成功!”)
}else{
layer.alert(“提交失败!”)
}
},

});
console.log(data.field);
alert(“d”);
return false;
});

 

 

 

 

  1. $ = layui.jquery;//加上这一句,否则报异常 $undefinded
  2. return false;//否则页面会刷新,阻止ajax回调函数的调用

什么是CSS预处理器?

什么是CSS预处理器?
Css可以让你做很多事情,但它毕竟是给浏览器认的东西,对开发者来说,Css缺乏很多特性,例如变量、常量以及一些编程语法,代码难易组织和维护。这时Css预处理器就应运而生了。Css预处理器定义了一种新的语言将Css作为目标生成文件,然后开发者就只要使用这种语言进行编码工作了。预处理器通常可以实现浏览器兼容,变量,结构体等功能,代码更加简洁易于维护。 “我应该选择哪种css预处理器?”是最近网上的一大热门话题,很多人为此争论不休。相比过去我们对是否应该使用Css预处理器的话题,这已经是很大的进步了。 继续阅读什么是CSS预处理器?

【已解决】wordpress不能使用SFTP服务升级

参考自https://wordpress.org/plugins/ssh-sftp-updater-support/#description
详细步骤:

  1. 下载插件包
    进入上面的地址下载,或从下面的地址下载
    https://download.csdn.net/download/wingrez/10419452
  2. 下载完成后,将压缩包解压得到的文件上传至服务器…/wp-content/plugins/ssh-sftp-updater-support/目录下。(ssh-sftp-updater-support目录需要自己建立)
  3. 进入wordpress控制台,启用该插件,如下:
    启用插件
    4.之后就能使用ssh协议正常升级。

完美解决 请在微信客户端打开链接

背景描述

-w272

相信有模拟微信页面请求的测试都有看到过这个页面,简单点说就是爬虫爬微信页面,进行回放的时候会出现这个页面。大概在1年前,专门安排了一个人去解决这个技术问题,遗憾的是当时没有找到解决方案,接下来所有微信端的接口测试和性能测试都无法进行,今天和大家分享下我们的解决方案,希望大家可以绕过微信的坑。

业务场景

我这里以JMeter来举例,我们可以通过在JMeter上开启代理,手机上设置代理来录制微信端的请求,以下为在微信端的业务对应生成的脚本:

-w800

录制完成后,我们进行回放,你会发现在查看结果树中,会重定向到微信授权,接着就开始提示:请在微信客户端打开链接。

-w800

这里补充几个录制的小技巧

-w800

1、每个组放入一个新的控制器:在手机端上做的一次操作所产生的请求会被放在一个控制器中,非常方便;
2、选中记录HTTP信息头、添加断言、Regex matching :自动添加信息头和断言;

问题分析

这里我们看一下请在微信客户端打开链接页面对应的代码:

  1. <code style=“font-family:Menlo, Monaco, Consolas, ‘Courier New’, monospace;display:block;line-height:18px;border:none !important;”><script type=“text/javascript”>
  2. var ua = navigator.userAgent.toLowerCase();
  3. var isWeixin = ua.indexOf(‘micromessenger’) != -1;
  4. var isAndroid = ua.indexOf(‘android’) != -1;
  5. var isIos = (ua.indexOf(‘iphone’) != -1) || (ua.indexOf(‘ipad’) != -1);
  6. if (!isWeixin) {
  7. document.head.innerHTML = ‘<title>抱歉,出错了</title><meta charset=“utf-8”><meta name=“viewport” content=“width=device-width, initial-scale=1, user-scalable=0”><link rel=“stylesheet” type=“text/css” href=“https://res.wx.qq.com/open/libs/weui/0.4.1/weui.css”>‘;
  8. document.body.innerHTML = ‘<div class=“weui_msg”><div class=“weui_icon_area”><i class=“weui_icon_info weui_icon_msg”></i></div><div class=“weui_text_area”><h4 class=“weui_msg_title”>请在微信客户端打开链接</h4></div></div>‘;
  9. }
  10. </script>
  11. </code>

重点看:

  1. <code style=“font-family:Menlo, Monaco, Consolas, ‘Courier New’, monospace;display:block;line-height:18px;border:none !important;”>var ua = navigator.userAgent.toLowerCase();
  2. var isWeixin = ua.indexOf(‘micromessenger’) != -1;
  3. </code>

说明微信的这个提示是通过判断userAgent中是否包含micromessenger确认是否从微信中打开。
好了,我们查看以下HTTP头中的userAgent:

-w800

录制的时候自动添加了录制HTTP请求头的,那么为什么在JMeter打开会仍然会提示呢?这里怀疑是微信故意留的坑或者是微信开发这个页面的人英语四级没过。

解决方案

经过和我们程序猿哥哥陈丹明陈建清一番讨论,一开始没有解决方案;此时丹明怀疑MicroMessenger这个单词写错了,应该是:micromessage!一试,果然!
好吧,程序猿你赢了,看来懂英语是多么的重要。

最终解决

在HTTP请求头里面将MicroMessenger修改成 micromessage

-w800

小结

1、请在微信客户端打开链接 这个问题困扰了我们很久,今天总算解决,完美解决;
2、感谢程序猿的大胆怀疑,给他们点赞;
3、自动化测试过程中如果碰见了技术瓶颈,不妨多和研发沟通,他们总能给你一些指导。

Note:

1、单纯的访问页面,则修改成:micromessage就好;
2、在访问页面之前需要进行授权登录,则需要和开发沟通下具体的业务逻辑

3.、是将MicroMessenger替换成micromessage