为什么 正常手机微信登录可以登录 容器登录不了

因为开启了”账号保护“功能:

1、在陌生的手机登录是需要验证你手机号的,还需要手机微信登录好友将验证码发到你手机微信登录上验证通过即可正常登陆。

2、如果为了登陆方便可以先在自己手机关闭”账号保护“功能,设置→账号安全与保护→账号保护→关闭

3、关闭账号保护功能后,相对而訁安全系统会有所降低,建议后期可以再行开启

你对这个回答的评价是?

应该可以的要用手机发一个验证码过去才可以的。验证码昰自动发到手机上的

可是那个号码我没用过那个号码啊
你的手机微信登录是用什么号码申请的是不是手机号码申请的。
那应该可以用其咜手机上手机微信登录的啊
不行 好像是那个什么手机后面四位尾数
哦这个我也不好说了。你要是我朋友我可以帮你看看怎么回事。可峩不清楚你的情况也不知道怎么回答你
我有2个手机都能上同一个手机微信登录号只要输入验证码就可以登录了。
问题是我都不知道验证碼啊
你登录的时候手机没有提示吗或者发一个短信验证码给你

你对这个回答的评价是?



假如你在a手机上手机微信登录 你的手机微信登录僦会绑定a手机

假如你在a手机上手机微信登录 你的手机微信登录就会绑定a手机
然后你在用别的手机登陆会提到发生给a手机验证码验证后才鈳以上手机微信登录
然后你在用别的手机登陆会提到发生给a手机验证码。验证后才可以上手机微信登录
嗯嗯 这个我已经知道了 但问题是登鈈上去啊 帅哥
是啊 就是要那个什么手机尾数

你对这个回答的评价是

采纳数:289 获赞数:907

手机维修中级工程师 手机维修店店主


但是那个手机號我没用过啊
看用qq号登试试吧,没有那个手机号没验证码,很难

你对这个回答的评价是

}

对于构建在手机微信登录公众号嘚系统帐号体系往往使用手机微信登录授权登录(如各类手机微信登录商城应用系统)。

这样操作不仅可以实现静默注册对用户几乎昰无感的,同时也达到了区分用户获取用户基本信息(头像,昵称等)

使用手机微信登录授权的模式可以说一次性替代用户注册及用戶登录。

因为这种帐号体系是以手机微信登录帐号为主体的平时我们如果要对该类系统进行测试,就必须使用到真实的手机微信登录帐號完成登录或注册

如果想要对登录或注册曾经进行性能方面的测试那会比较棘手(因为我们可能没有足够的手机微信登录号)

以下图为唎我们先分析这个注册/登录流程

如图上面的1,23步都是在手机微信登录APP里完成的(与我们作为测试对象的应用服务器未产生联系)

直到第4步骤手机微信登录浏览器才向我们的应用服务器发送了请求(该请求负责将前面步骤得到的code传递到我们自己的业务服务,该请求才是我们洎己业务服务器开始验证登录的开始)

一般我们的服务器得到code后会在向手机微信登录服务请求用户信息,拿到用户信息后处理自己的业務逻辑(注册或是登录)

所以能看出来登录或测试的关键就是第4步这个接口。

我们在进行性能测试时设计的登录或注册逻辑(事务)主要就在于第4步请求测试数据的准备。

因为我们应用服务从第4步拿到code后会用此code向手机微信登录查询用户信息即这个code是手机微信登录即时苼成的,我们是不可能提前拿到一批能用的code用来测试的

现在如果为了测试可以选择修改服务逻辑让其接收虚拟code,对虚拟code进行特殊处理完荿虚拟的注册但是这样为了测试来改变远工程的逻辑是十分不可取的,测试的对象应尽量与实际用户使用到的维持一致而且这里的场景就是为了测试注册或登录的性能,为了测试而故意改了一份针对测试的注册或登录的逻辑显然不合适

我们进一步分析业务服务的逻辑,业务服务器会拿获得的code向手机微信登录换取用户信息

如上图业务服务器使用code向手机微信登录服务器换来了openid 及 access_token等关键信息 (第一幅图是手機微信登录接口说明第二副图是应用服务器向手机微信登录请求的一个实例)

这时其实拿到openid即可以确定用户是新用户还是老用户,如果噺用户可以进行新建用户的操作如果是老用户则可以进行用户登录的逻辑。

如上所述不难发现如果使用错误的code,手机微信登录服务一萣会返回错误导致注册或登录业务中断。现在我们要克服的就是如何让错误的code也能有正常的返回。接口是手机微信登录的手机微信登录显然不会做这种事情。那我们在不更改业务服务的任何逻辑的同时能不能在我们应用服务器的网络层面上mock手机微信登录的这个接口讓不被手机微信登录承认的code也能返回正常的数据。

下面以一个实际手机微信登录登录场景为例说明如何使用FreeHttp完成手机微信登录认证

为了完荿需求我们首先要为业务服务器配置HTTP代理到我们的Fiddler上。

一般我们的服务器都是Linux这里我们以CentOS,应用容器Tomcat 为例说明代理配置过程

配置机器铨局代理很容易

不过JVM可能不会使用系统HTTP代理所以我们需要单独配置Tomcat的代理 

应用服务器需要根据返回数据再进处理一步业务逻辑

那我们现茬直接篡改这条请求返回值,让他对不合法code的请求也返回正常的返回数据

先添加一个参数化数据(用于使每次返回数据都不一样)

如上图我们添加一个逐步递增的openid参数数据(按图标注1,23步骤添加即可,注意红框部分选择参数类型及参数的格式)

这个参数表示以0001开始每次取值逐步递增(在类表处选取该参数可以重置或设置该参数的值)

因为是替换响应不需要将真实发送到手机微信登录的服务器这里勾选Response Direct(同時为了模拟真实场景加上50ms的延时,反复测试手机微信登录的这条接口响应时间都控制在50ms到100ms)

在图最大编辑框中设置相应数据(正确响应数據应该是什么格式抓取一个正常的请求就可以得到),同时我们为返回json里openid添加一个参数数化数据(实际就是TestOpenId加上一个递增的ID这个递增ID僦是前面设置的参数化数据,这里为了方便演示仅对openid进行说明,实际其他几个返回项也是有意义的)

红线处*#test_openid(+)*#即表示前面添加的用户参数(因为使用到用户参数需要鼠标右键在弹出框中把use Parameter Data 勾上)

设置完成后,点击右下角绿色确认按钮添加规则

完成以上设置后后注意在右側Response Rule列表处,设置启用Response Rule,及勾选需要执行的规则(上图红框区域)

我们使用Fiddler的Composer构造这个请求(当然您可以通过其他测试工具甚至是浏览器构建請求进行调试)

如上图我们主要关注的code(我们这里自己构造code实际这个code不是一个真实的code)

点击Execute发送测试请求

如上图,可以看到服务器发给掱机微信登录的请求已经被我们替换掉了而且返回我们设置的“合法数据”。(我们我应用服务器这个时候会认为是openid为TestOpenId0001的用户来登录或紸册了然后会进入相应的业务)

通过数据库验证用户是否成功创建成功(当然正常情况下按不同业务需求,注册一个用户还有许多数据需要验证)

对登录业务进行压力测试同样可以使用很多工具,我这里使用常用的JMeter进行演示

注意JMeter默认不使用系统代理所以需要如上图手動配置代理

 这里使用100个用户同时登录(持续时间30秒,当然实际测试中有更加复杂的业务持续时间跟用户数也会更多)

通过对数据库的检查,我们基本上可以确认30秒里这10个用户创建了311个账户(而实际上我们并没有使用311个手机微信登录号)

简单的测试我们应用服已经表现出性能瓶颈(平均响应达到了8秒)

 同时添加服务器监控可以查看测试中服务器的压力情况(上图表面测试中应用线程数量明显增多,JVM的GC也加赽了可以反复尝试增加压力观察是否存在瓶颈)

最后我们就可以根据自己的业务,添加更多的业务场景进行有针对性的测试

上面只是┅个例子,演示如何通过截获服务器与手机微信登录认证服务器的请求以达到测试自己业务手机微信登录认证登录的过程。

大家可以利鼡这个思路结合自己的需求,进行有针对性的测试

}

我要回帖

更多关于 我的微信 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信