面试题:
1、一张类似支付宝的扫码支付页面(商家扫我的),问怎么进行功能测试
------我大致说了下 UI界面测试、扫面二维码/条形码跳转的页面、选择的支付方式、支付成功与否、支付金额等,不太全,网上也没有找到类似的答案,大家有建议的可以回复一下
2、针对第1题中的页面,用户反馈点击支付进入此页面经常出现白屏,反应慢,怎么进行性能测试
------这个不太会,只回答说可能是APP响应慢、手机卡顿,可以找对应的接口测试一下
3、针对第1题中的页面,需求规定可以同时支持1万人支付,实际只能支持1千人支付,怎么进行压力测试
------这个我是打算用jmeter工具,针对此付款接口进行压力测试,通过聚合报告/图形结果的数据,得出能支持的线程数(并发数),然后与开发、运维、产品等人员讨论进行性能优化
补充:进行压力测试时,测试环境的配置与生产环境的有差异,可以通过折算的方式,比如测试环境的配置只有1/5,那根据生产环境的活跃量、要求的TPS等,折算后到测试环境的并发数、TPS数据等,没有发生失败事务基本就算测试通过了
指标:并发数、平均响应时间(Average)、90%以下的时间(90%Line)、错误率(Error%)、TPS(Throughput)
备注:90%Line,是指90%的请求的响应时间都低于这个值
4、请设计一个高效算法,再给定的字符串数组中,找到包含"Coder"的字符串(不区分大小写),并将其作为一个新的数组返回。结果字符串的顺序按照"Coder"出现的次数递减排列,若两个串中"Coder"出现的次数相同,则保持他们在原数组中的位置关系。
给定一个字符串数组A和它的大小n,请返回结果数组。保证原数组大小小于等于300,其中每个串的长度小于等于200。同时保证一定存在包含coder的字符串。
测试样例:
["i am a coder","Coder Coder","Code"],3
返回:["Coder Coder","i am a coder"]
python 实现:
我分开写了两个函数,也可以合并在一个函数,而且可以简化,大家自己优化吧;另外最后一个要求每个串的长度小于等于200的没有实现
def find_code(a,t): ''' :param a: 是给定的列表 :param t: 是给定的子字符串 :return: ''' dict_b = {} for item in a: item = item.lower() #因为不区分大小写,所以直接变成小写字母进行对比 #print(item) if t in item: #print(item) m = item.count(t) #item.count(t) 是查询t在item中出现的个数 dict_b[m] = item print("包含code的元素:",dict_b) return dict_b def paixu(b): ''' :param b: 是个字典,并且key是数字 :return: ''' list_b =[] list_key=list(b) #取字典中的key值组成列表 print(list_key) for i in range(0,len(list_key)): #key列表中进行排序 for j in range(i,len(list_key)): if list_key[i] < list_key[j]: #使用<就是从大到小排序,使用>就是从小到大排序 temp = list_key[i] list_key[i] = list_key[j] list_key[j] = temp print(list_key) for k in list_key: #key已经排好序了,直接把相应的values插入列表 list_b.append(b[k]) print(list_b) if __name__ == '__main__': list_a = ["i am a coder","Coder Coder","Code"] t = "coder" dict_b = find_code(list_a,t) print() paixu(dict_b)