51Testing软件测试论坛

标题: 求jmeter大神,急急急!! [打印本页]

作者: 我是一个小测试    时间: 2017-4-21 18:45
标题: 求jmeter大神,急急急!!
本帖最后由 我是一个小测试 于 2017-4-21 19:11 编辑

这个本来是悬赏的,但是悬赏没办法冲¥,冲¥报错,只能在论坛里说了,帮帮看一下吧!谢谢了,如果解决非常感谢,包括物质上的和精神上的!!!

本人是一个测试,自学的那种。接口性能测试,没有说性能需求。就是说测一下性能。
说一下具体的接口特点:
此接口为支付接口(方法为post),

一共有12个参数,其中有两个参数需要在不断的请求中改变,一个是订单号,这个参数为:
outTradeNo
String
true
唯一订单号(同一订单来源下,订单号应保证唯一)
还有一个为签名参数:
sign
String
true
获取所有不为空的参数,剔除sign参数。将筛选的参数按照第一个字符的键值ASCII码递增排序(字母升序排序),如果遇到相同字符则按照第二个字符的键值ASCII码递增排序,以此类推。将排序后的参数与其对应值,组合成“参数=参数值”的格式,并且把这些参数用&字符连接起来,此时生成的字符串为待签名字符串。将key的值拼接在字符串后面,调用MD5算法生成signMD5key见附录

这两个参数在http请求中,ouTradeNo是一个需要参数化的参数;但是要生成sign,需要outTeadeNo等各个参数以及他们的值进行排序,合并上key的值,然后在
进行MD5加密;生成的加密字符串才是sign的参数值,然后再写入http请求的参数值中进行一个
完整的http请求,获得返回数据,在提取返回数据进行后面的订单查询,退款操作,退款查询等系列流程。


需求  1.现在这个sign参数值我没办法生成,让他随着订单号的改变来改变,进行http请求。
       2.取到统一支付接口返回值是一个支付地址(支付宝二维码网页,扫码付款)。
       3.性能测试走流程时是不是能自动付款,然后在进行下面的业务(感觉这个不能实现,是不是需要全部订单手动付款后在进行一下流程)
       4.还有就是要进行接口性能测试的话设置多少订单比较合适,要进行几个线程循环。


      给出主要的策略,具体怎么把sign参数化,让http请求时取到生成之后的参数。指出需要用到的组件以及使用方法;
      比如:参数化outTradeNo,要用到CSV Data Set config 组件进行记事本编辑引用参数的。然后应用到参数中。

    求各位大神解答!!!!!




作者: jingzizx    时间: 2017-4-22 08:10
1、sign的生成应该单独写程序的,这个基本需要你自己开发代码或者寻找开发同事的帮忙,使用jar包、dll等类似的方式导入jmeter,因为你还涉及到了MD5算法,估计也是调用的;
2、你这个接口应该是下订单接口吧,然后支付宝给你返回支付地址,支付完成后,订单完成。所以感觉你的功能还是下订单的过程。这样就不需要进行支付了吧,不知道理解的对不对。
作者: jingzizx    时间: 2017-4-22 08:12
你这个接口是直接发送给支付宝的?
如果是,感觉没什么意义吧
作者: 我是一个小测试    时间: 2017-4-24 13:46
jingzizx 发表于 2017-4-22 08:12
你这个接口是直接发送给支付宝的?
如果是,感觉没什么意义吧

确实是这样的,这个接口走完第一步后确实需要支付,然后才能进行后面的接口测试,但是我想的是多设置几个订单,先看看是不是能调用成功,调用成功了以后,取到地址,然后手动支付,再进行后面的查询等一系列的接口访问,不知道这个策略能不能行的通,(其实这里还有一个困惑,多线程下的接口怎么说也得几百个,这要是一一支付,是有点不切实际),但是并发扫码支付我现在没有做过,不知道该怎么完成,请问扫码并发能做吗?还有这个接口的性能我感觉我这个水平的做不了,到底需要什么样水平才能完成这个测试,我是一脸困惑啊。
作者: 我是一个小测试    时间: 2017-4-24 13:47
jingzizx 发表于 2017-4-22 08:10
1、sign的生成应该单独写程序的,这个基本需要你自己开发代码或者寻找开发同事的帮忙,使用jar包、dll等类 ...

感谢回复,真的非常感谢!!!
作者: 一抹红尘    时间: 2017-4-24 14:23

1、“1.现在这个sign参数值我没办法生成,让他随着订单号的改变来改变,进行http请求”------你发送post请求,请求成功以后就会返回响应,而返回响应参数就会包含sign和outTradeNo 这两个参数,outTradeNo这个就相当于每一次请求生成的id,每次都是不同的,sign的就是你的订单的内容,只不过的经过了加密算法 ,这两个参数都不需要你手动创建
2、“取到统一支付接口返回值是一个支付地址”-------首先你要对post响应返回的参数内容了解,对每一个内容的的意思代表是什么,对于这一块最好是问开发。对于返回值是一个地址,说明你的取值取错了
3、“性能测试走流程时是不是能自动付款,然后在进行下面的业务”-------对于性能测试也比较广泛 ,可以进行并发测试,比如同一时间段内进行多次支付,看系统的瓶颈在哪
4、“4.还有就是要进行接口性能测试的话设置多少订单比较合适,要进行几个线程循环。”-------这个要看你的需求规格
作者: 我是一个小测试    时间: 2017-4-24 15:08
一抹红尘 发表于 2017-4-24 14:23
1、“1.现在这个sign参数值我没办法生成,让他随着订单号的改变来改变,进行http请求”------你发送post ...

关于你的第一个反馈1:那两个值确实的是需要手动创建的,下面为实例,(见附件)是我做功能的实例。
2.返回的内容:方法状态信息,方法状态码,状态信息,支付类型,支付记录ID,data这个就是具体支付用到的url,访问时是一个二维码支付页面,需要手动支付。
3.我所说的自动付款是支付宝接口的二维码付款。
4.我确实不理解支付宝类型的接口性能,所以不明确初次该设置多少线程,递增幅度等等。


                                                               非常感谢回复和讨论分析!非常感谢!

作者: jingzizx    时间: 2017-4-24 15:18
我是一个小测试 发表于 2017-4-24 13:46
确实是这样的,这个接口走完第一步后确实需要支付,然后才能进行后面的接口测试,但是我想的是多设置几个 ...

我的感觉是你并发扫描支付这个根本就不需要做,因为你加压的对象是支付宝啊,即使你能做,又有什么意义呢
这里你只要关注功能调用成功即可。
作者: 我是一个小测试    时间: 2017-4-24 15:27
jingzizx 发表于 2017-4-24 15:18
我的感觉是你并发扫描支付这个根本就不需要做,因为你加压的对象是支付宝啊,即使你能做,又有什么意义呢 ...

对的,但是我都调用不成功,不知道这个变态的签名(sign)参数如何自动生成,并发扫描不做可以,但是后续的订单查询,退单,退单查询还是要做的不是吗?这个前提下还是要形成支付订单号啊。(这里继续疑问困惑,统一订单下的退单操作只能进行一次,再次循环就会出现重复退订,这种重复退订的返回响应是不是也算成功?)
                                                                                                  感谢回复!
作者: jingzizx    时间: 2017-4-25 08:18
我是一个小测试 发表于 2017-4-24 15:27
对的,但是我都调用不成功,不知道这个变态的签名(sign)参数如何自动生成,并发扫描不做可以,但是后续 ...

订单查询,退单查询应该是你自己系统记录的吧,如果是,那么自己在数据库可以添加数据,进行性能测试;
退单应该是对支付宝的接口,只要保证正确即可,你说的重复退订的响应是正常响应,我觉得没问题
作者: 我是一个小测试    时间: 2017-4-25 17:56
jingzizx 发表于 2017-4-25 08:18
订单查询,退单查询应该是你自己系统记录的吧,如果是,那么自己在数据库可以添加数据,进行性能测试;
...

感谢大神的指教,我现在对这个接口有概念了,也知道具体的测试策略了,JM的MD5加密已经成功,单个可变参数值的参数化问题已经解决,但是就是这个sign签名参数值(未加密之前的合并型字符串)无法生成,请问大神有什么添加某个组件的方法可以生成sign参数(未加密之前的字符串也行)。有什么方法吗?还是一定要写一个生成字符串原形的java程序,然后导包。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2